[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 | 28-NOV-2012 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 -- Code for Match rule Web Services: Identical Organizations
399 ELSIF p_rule_id=238 THEN
400 IF NOT HZ_MATCH_RULE_238.check_staged THEN
401 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
402 FND_MSG_PUB.ADD;
403 RAISE FND_API.G_EXC_ERROR;
404 END IF;
405 HZ_MATCH_RULE_238.find_parties(
406 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
407 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,NULL,NULL,NULL,'N',x_search_ctx_id,x_num_matches);
408 -- Code for Match rule Web Services: Identical Persons
409 ELSIF p_rule_id=240 THEN
410 IF NOT HZ_MATCH_RULE_240.check_staged THEN
411 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
412 FND_MSG_PUB.ADD;
413 RAISE FND_API.G_EXC_ERROR;
414 END IF;
415 HZ_MATCH_RULE_240.find_parties(
416 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
417 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,NULL,NULL,NULL,'N',x_search_ctx_id,x_num_matches);
418 END IF;
419 -- User quality score
420 IF (fnd_profile.value('HZ_QUALITY_WEIGHTING_USER_HOOK') = 'Y') THEN
421 HZ_DQM_SEARCH_UTIL.get_quality_score ( x_search_ctx_id, p_rule_id);
422 END IF;
423 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
424 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);
425 END IF;
426 --Standard call to get message count and if count is 1, get message info
427 FND_MSG_PUB.Count_And_Get(
428 p_encoded => FND_API.G_FALSE,
429 p_count => x_msg_count,
430 p_data => x_msg_data);
431 EXCEPTION
432 WHEN FND_API.G_EXC_ERROR THEN
433 x_return_status := FND_API.G_RET_STS_ERROR;
434 FND_MSG_PUB.Count_And_Get(
435 p_encoded => FND_API.G_FALSE,
436 p_count => x_msg_count,
437 p_data => x_msg_data);
438 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
439 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
440 FND_MSG_PUB.Count_And_Get(
441 p_encoded => FND_API.G_FALSE,
442 p_count => x_msg_count,
443 p_data => x_msg_data);
444
445 WHEN OTHERS THEN
446 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
447 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_API_ERROR');
448 FND_MESSAGE.SET_TOKEN('PROC' ,'HZ_PARTY_SEARCH');
449 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
450 FND_MSG_PUB.ADD;
451
452 FND_MSG_PUB.Count_And_Get(
453 p_encoded => FND_API.G_FALSE,
454 p_count => x_msg_count,
455 p_data => x_msg_data);
456 END;
457
458 PROCEDURE find_persons (
459 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
460 p_rule_id IN NUMBER,
461 p_party_search_rec IN party_search_rec_type,
462 p_party_site_list IN party_site_list,
463 p_contact_list IN contact_list,
464 p_contact_point_list IN contact_point_list,
465 p_restrict_sql IN VARCHAR2,
466 p_match_type IN VARCHAR2,
467 p_search_merged IN VARCHAR2,
468 x_search_ctx_id OUT NUMBER,
469 x_num_matches OUT NUMBER,
470 x_return_status OUT VARCHAR2,
471 x_msg_count OUT NUMBER,
472 x_msg_data OUT VARCHAR2
473 ) IS
474 CURSOR c_match_rule IS
475 SELECT COMPILATION_FLAG
476 FROM HZ_MATCH_RULES_VL
477 WHERE MATCH_RULE_ID = p_rule_id;
478 l_cmp_flag VARCHAR2(1);
479 BEGIN
480
481 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
482 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);
483 END IF;
484 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
485 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);
486 END IF;
487 -- Initialize return status and message stack
488 x_return_status := FND_API.G_RET_STS_SUCCESS;
489 IF FND_API.to_Boolean(p_init_msg_list) THEN
490 FND_MSG_PUB.initialize;
491 END IF;
492
493 IF p_rule_id IS NULL OR p_rule_id = 0 THEN
494 -- Find the match rule
495 null;
496
497 -- No MATCH RULE FOUND
498 FND_MESSAGE.SET_NAME('AR', 'HZ_NO_MATCH_RULE');
499 FND_MSG_PUB.ADD;
500 RAISE FND_API.G_EXC_ERROR;
501 END IF;
502 OPEN c_match_rule;
503 FETCH c_match_rule INTO l_cmp_flag;
504 IF c_match_rule%NOTFOUND OR l_cmp_flag <> 'C' THEN
505 FND_MESSAGE.SET_NAME('AR', 'HZ_INVALID_MATCH_RULE');
506 FND_MSG_PUB.ADD;
507 RAISE FND_API.G_EXC_ERROR;
508 END IF;
509 -- Code for Match rule SAMPLE: ORGANIZATIONS_OPTIMIZED
510 IF p_rule_id=2 THEN
511 IF NOT HZ_MATCH_RULE_2.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_2.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: PERSON_OPTIMIZED
520 ELSIF p_rule_id=3 THEN
521 IF NOT HZ_MATCH_RULE_3.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_3.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: ADDRESS_ORGANIZATIONS
530 ELSIF p_rule_id=4 THEN
531 IF NOT HZ_MATCH_RULE_4.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_4.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: ADDRESS_PERSONS
540 ELSIF p_rule_id=5 THEN
541 IF NOT HZ_MATCH_RULE_5.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_5.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: SIMILAR_ORGANIZATION
550 ELSIF p_rule_id=6 THEN
551 IF NOT HZ_MATCH_RULE_6.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_6.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 SAMPLE: SIMILAR_PERSON
560 ELSIF p_rule_id=7 THEN
561 IF NOT HZ_MATCH_RULE_7.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_7.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: SEARCH
570 ELSIF p_rule_id=8 THEN
571 IF NOT HZ_MATCH_RULE_8.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_8.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 RM SEARCH RULE
580 ELSIF p_rule_id=32 THEN
581 IF NOT HZ_MATCH_RULE_32.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_32.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 SAMPLE:BASIC SEARCH RULE
590 ELSIF p_rule_id=33 THEN
591 IF NOT HZ_MATCH_RULE_33.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_33.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 SAMPLE:ADVANCED SEARCH RULE
600 ELSIF p_rule_id=34 THEN
601 IF NOT HZ_MATCH_RULE_34.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_34.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 SMART SEARCH
610 ELSIF p_rule_id=35 THEN
611 IF NOT HZ_MATCH_RULE_35.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_35.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 ADDRESS AND RELATIONSHIP SEARCH
620 ELSIF p_rule_id=36 THEN
621 IF NOT HZ_MATCH_RULE_36.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_36.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 DL ADDRESS DEFAULT
630 ELSIF p_rule_id=37 THEN
631 IF NOT HZ_MATCH_RULE_37.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_37.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 DL RELATIONSHIP DEFAULT
640 ELSIF p_rule_id=38 THEN
641 IF NOT HZ_MATCH_RULE_38.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_38.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 ADDRESS ORGANIZATIONS EXACT
650 ELSIF p_rule_id=39 THEN
651 IF NOT HZ_MATCH_RULE_39.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_39.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 SIMILAR ORGANIZATION EXACT
660 ELSIF p_rule_id=40 THEN
661 IF NOT HZ_MATCH_RULE_40.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_40.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 SAMPLE: SEARCH SIMILAR PERSON EXACT
670 ELSIF p_rule_id=41 THEN
671 IF NOT HZ_MATCH_RULE_41.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_41.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 SAMPLE: SEARCH EXACT
680 ELSIF p_rule_id=42 THEN
681 IF NOT HZ_MATCH_RULE_42.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_42.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 DL SYSTEM DUPLICATE IDENTIFICATION
690 ELSIF p_rule_id=48 THEN
691 IF NOT HZ_MATCH_RULE_48.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_48.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 ORGANIZATIONS
700 ELSIF p_rule_id=50 THEN
701 IF NOT HZ_MATCH_RULE_50.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_50.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 BULK MATCH: IDENTICAL PERSONS
710 ELSIF p_rule_id=51 THEN
711 IF NOT HZ_MATCH_RULE_51.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_51.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 BULK MATCH: IDENTICAL PARTIES
720 ELSIF p_rule_id=52 THEN
721 IF NOT HZ_MATCH_RULE_52.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_52.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 CREDIT MANAGEMENT SEARCH
730 ELSIF p_rule_id=53 THEN
731 IF NOT HZ_MATCH_RULE_53.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_53.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_PERSON_SIMPLE_SEARCH_RULE
740 ELSIF p_rule_id=58 THEN
741 IF NOT HZ_MATCH_RULE_58.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_58.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_PERSON_ADVANCED_SEARCH_MATCH_RULE
750 ELSIF p_rule_id=60 THEN
751 IF NOT HZ_MATCH_RULE_60.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_60.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_ORG_SIMPLE_SEARCH_RULE
760 ELSIF p_rule_id=61 THEN
761 IF NOT HZ_MATCH_RULE_61.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_61.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_ORG_ADV_SEARCH_RULE
770 ELSIF p_rule_id=62 THEN
771 IF NOT HZ_MATCH_RULE_62.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_62.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 -- Code for Match rule HZ_CONTACT_SIMPLE_SEARCH_RULE
780 ELSIF p_rule_id=98 THEN
781 IF NOT HZ_MATCH_RULE_98.check_staged THEN
782 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
783 FND_MSG_PUB.ADD;
784 RAISE FND_API.G_EXC_ERROR;
785 END IF;
786 HZ_MATCH_RULE_98.find_persons(
787 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
788 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,'N',x_search_ctx_id,x_num_matches);
789 -- Code for Match rule HZ_CONTACT_ADV_SEARCH_MATCH_RULE
790 ELSIF p_rule_id=99 THEN
791 IF NOT HZ_MATCH_RULE_99.check_staged THEN
792 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
793 FND_MSG_PUB.ADD;
794 RAISE FND_API.G_EXC_ERROR;
795 END IF;
796 HZ_MATCH_RULE_99.find_persons(
797 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
798 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,'N',x_search_ctx_id,x_num_matches);
799 -- Code for Match rule Web Services: Identical Organizations
800 ELSIF p_rule_id=238 THEN
801 IF NOT HZ_MATCH_RULE_238.check_staged THEN
802 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
803 FND_MSG_PUB.ADD;
804 RAISE FND_API.G_EXC_ERROR;
805 END IF;
806 HZ_MATCH_RULE_238.find_persons(
807 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
808 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,'N',x_search_ctx_id,x_num_matches);
809 -- Code for Match rule Web Services: Identical Persons
810 ELSIF p_rule_id=240 THEN
811 IF NOT HZ_MATCH_RULE_240.check_staged THEN
812 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
813 FND_MSG_PUB.ADD;
814 RAISE FND_API.G_EXC_ERROR;
815 END IF;
816 HZ_MATCH_RULE_240.find_persons(
817 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
818 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,'N',x_search_ctx_id,x_num_matches);
819 END IF;
820 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
821 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);
822 END IF;
823 --Standard call to get message count and if count is 1, get message info
824 FND_MSG_PUB.Count_And_Get(
825 p_encoded => FND_API.G_FALSE,
826 p_count => x_msg_count,
827 p_data => x_msg_data);
828 EXCEPTION
829 WHEN FND_API.G_EXC_ERROR THEN
830 x_return_status := FND_API.G_RET_STS_ERROR;
831 FND_MSG_PUB.Count_And_Get(
832 p_encoded => FND_API.G_FALSE,
833 p_count => x_msg_count,
834 p_data => x_msg_data);
835 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
836 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
837 FND_MSG_PUB.Count_And_Get(
838 p_encoded => FND_API.G_FALSE,
839 p_count => x_msg_count,
840 p_data => x_msg_data);
841
842 WHEN OTHERS THEN
843 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
844 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_API_ERROR');
845 FND_MESSAGE.SET_TOKEN('PROC' ,'HZ_PARTY_SEARCH');
846 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
847 FND_MSG_PUB.ADD;
848
849 FND_MSG_PUB.Count_And_Get(
850 p_encoded => FND_API.G_FALSE,
851 p_count => x_msg_count,
852 p_data => x_msg_data);
853 END;
854
855 PROCEDURE find_persons (
856 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
857 p_rule_id IN NUMBER,
858 p_party_search_rec IN party_search_rec_type,
859 p_party_site_list IN party_site_list,
860 p_contact_list IN contact_list,
861 p_contact_point_list IN contact_point_list,
862 p_restrict_sql IN VARCHAR2,
863 p_match_type IN VARCHAR2,
864 x_search_ctx_id OUT NUMBER,
865 x_num_matches OUT NUMBER,
866 x_return_status OUT VARCHAR2,
867 x_msg_count OUT NUMBER,
868 x_msg_data OUT VARCHAR2
869 ) IS
870 BEGIN
871 find_persons (
872 p_init_msg_list,p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,p_contact_point_list,
873 p_restrict_sql ,p_match_type,NULL,x_search_ctx_id,x_num_matches,x_return_status,
874 x_msg_count,x_msg_data);
875 END;
876
877 PROCEDURE find_party_details (
878 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
879 p_rule_id IN NUMBER,
880 p_party_search_rec IN party_search_rec_type,
881 p_party_site_list IN party_site_list,
882 p_contact_list IN contact_list,
883 p_contact_point_list IN contact_point_list,
884 p_restrict_sql IN VARCHAR2,
885 p_match_type IN VARCHAR2,
886 p_search_merged IN VARCHAR2,
887 x_search_ctx_id OUT NUMBER,
888 x_num_matches OUT NUMBER,
889 x_return_status OUT VARCHAR2,
890 x_msg_count OUT NUMBER,
891 x_msg_data OUT VARCHAR2
892 ) IS
893 CURSOR c_match_rule IS
894 SELECT COMPILATION_FLAG
895 FROM HZ_MATCH_RULES_VL
896 WHERE MATCH_RULE_ID = p_rule_id;
897 l_cmp_flag VARCHAR2(1);
898 BEGIN
899 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
900 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);
901 END IF;
902 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
903 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);
904 END IF;
905
906 -- Initialize return status and message stack
907 x_return_status := FND_API.G_RET_STS_SUCCESS;
908 IF FND_API.to_Boolean(p_init_msg_list) THEN
909 FND_MSG_PUB.initialize;
910 END IF;
911
912 IF p_rule_id IS NULL OR p_rule_id = 0 THEN
913 -- Find the match rule
914 null;
915
916 -- No MATCH RULE FOUND
917 FND_MESSAGE.SET_NAME('AR', 'HZ_NO_MATCH_RULE');
918 FND_MSG_PUB.ADD;
919 RAISE FND_API.G_EXC_ERROR;
920 END IF;
921 OPEN c_match_rule;
922 FETCH c_match_rule INTO l_cmp_flag;
923 IF c_match_rule%NOTFOUND OR l_cmp_flag <> 'C' THEN
924 FND_MESSAGE.SET_NAME('AR', 'HZ_INVALID_MATCH_RULE');
925 FND_MSG_PUB.ADD;
926 RAISE FND_API.G_EXC_ERROR;
927 END IF;
928 -- Code for Match rule SAMPLE: ORGANIZATIONS_OPTIMIZED
929 IF p_rule_id=2 THEN
930 IF NOT HZ_MATCH_RULE_2.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_2.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: PERSON_OPTIMIZED
939 ELSIF p_rule_id=3 THEN
940 IF NOT HZ_MATCH_RULE_3.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_3.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: ADDRESS_ORGANIZATIONS
949 ELSIF p_rule_id=4 THEN
950 IF NOT HZ_MATCH_RULE_4.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_4.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 SAMPLE: ADDRESS_PERSONS
959 ELSIF p_rule_id=5 THEN
960 IF NOT HZ_MATCH_RULE_5.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_5.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: SIMILAR_ORGANIZATION
969 ELSIF p_rule_id=6 THEN
970 IF NOT HZ_MATCH_RULE_6.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_6.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: SIMILAR_PERSON
979 ELSIF p_rule_id=7 THEN
980 IF NOT HZ_MATCH_RULE_7.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_7.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 SAMPLE: SEARCH
989 ELSIF p_rule_id=8 THEN
990 IF NOT HZ_MATCH_RULE_8.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_8.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 RM SEARCH RULE
999 ELSIF p_rule_id=32 THEN
1000 IF NOT HZ_MATCH_RULE_32.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_32.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 SAMPLE:BASIC SEARCH RULE
1009 ELSIF p_rule_id=33 THEN
1010 IF NOT HZ_MATCH_RULE_33.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_33.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 SAMPLE:ADVANCED SEARCH RULE
1019 ELSIF p_rule_id=34 THEN
1020 IF NOT HZ_MATCH_RULE_34.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_34.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 DL SMART SEARCH
1029 ELSIF p_rule_id=35 THEN
1030 IF NOT HZ_MATCH_RULE_35.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_35.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 DL ADDRESS AND RELATIONSHIP SEARCH
1039 ELSIF p_rule_id=36 THEN
1040 IF NOT HZ_MATCH_RULE_36.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_36.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 DL ADDRESS DEFAULT
1049 ELSIF p_rule_id=37 THEN
1050 IF NOT HZ_MATCH_RULE_37.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_37.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 DL RELATIONSHIP DEFAULT
1059 ELSIF p_rule_id=38 THEN
1060 IF NOT HZ_MATCH_RULE_38.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_38.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 SAMPLE: SEARCH ADDRESS ORGANIZATIONS EXACT
1069 ELSIF p_rule_id=39 THEN
1070 IF NOT HZ_MATCH_RULE_39.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_39.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 SAMPLE: SEARCH SIMILAR ORGANIZATION EXACT
1079 ELSIF p_rule_id=40 THEN
1080 IF NOT HZ_MATCH_RULE_40.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_40.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 SAMPLE: SEARCH SIMILAR PERSON EXACT
1089 ELSIF p_rule_id=41 THEN
1090 IF NOT HZ_MATCH_RULE_41.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_41.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 SAMPLE: SEARCH EXACT
1099 ELSIF p_rule_id=42 THEN
1100 IF NOT HZ_MATCH_RULE_42.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_42.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 DL SYSTEM DUPLICATE IDENTIFICATION
1109 ELSIF p_rule_id=48 THEN
1110 IF NOT HZ_MATCH_RULE_48.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_48.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 BULK MATCH: IDENTICAL ORGANIZATIONS
1119 ELSIF p_rule_id=50 THEN
1120 IF NOT HZ_MATCH_RULE_50.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_50.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 BULK MATCH: IDENTICAL PERSONS
1129 ELSIF p_rule_id=51 THEN
1130 IF NOT HZ_MATCH_RULE_51.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_51.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 BULK MATCH: IDENTICAL PARTIES
1139 ELSIF p_rule_id=52 THEN
1140 IF NOT HZ_MATCH_RULE_52.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_52.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 CREDIT MANAGEMENT SEARCH
1149 ELSIF p_rule_id=53 THEN
1150 IF NOT HZ_MATCH_RULE_53.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_53.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_PERSON_SIMPLE_SEARCH_RULE
1159 ELSIF p_rule_id=58 THEN
1160 IF NOT HZ_MATCH_RULE_58.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_58.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_PERSON_ADVANCED_SEARCH_MATCH_RULE
1169 ELSIF p_rule_id=60 THEN
1170 IF NOT HZ_MATCH_RULE_60.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_60.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 -- Code for Match rule HZ_ORG_SIMPLE_SEARCH_RULE
1179 ELSIF p_rule_id=61 THEN
1180 IF NOT HZ_MATCH_RULE_61.check_staged THEN
1181 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1182 FND_MSG_PUB.ADD;
1183 RAISE FND_API.G_EXC_ERROR;
1184 END IF;
1185 HZ_MATCH_RULE_61.find_party_details(
1186 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
1187 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
1188 -- Code for Match rule HZ_ORG_ADV_SEARCH_RULE
1189 ELSIF p_rule_id=62 THEN
1190 IF NOT HZ_MATCH_RULE_62.check_staged THEN
1191 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1192 FND_MSG_PUB.ADD;
1193 RAISE FND_API.G_EXC_ERROR;
1194 END IF;
1195 HZ_MATCH_RULE_62.find_party_details(
1196 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
1197 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
1198 -- Code for Match rule HZ_CONTACT_SIMPLE_SEARCH_RULE
1199 ELSIF p_rule_id=98 THEN
1200 IF NOT HZ_MATCH_RULE_98.check_staged THEN
1201 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1202 FND_MSG_PUB.ADD;
1203 RAISE FND_API.G_EXC_ERROR;
1204 END IF;
1205 HZ_MATCH_RULE_98.find_party_details(
1206 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
1207 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
1208 -- Code for Match rule HZ_CONTACT_ADV_SEARCH_MATCH_RULE
1209 ELSIF p_rule_id=99 THEN
1210 IF NOT HZ_MATCH_RULE_99.check_staged THEN
1211 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1212 FND_MSG_PUB.ADD;
1213 RAISE FND_API.G_EXC_ERROR;
1214 END IF;
1215 HZ_MATCH_RULE_99.find_party_details(
1216 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
1217 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
1218 -- Code for Match rule Web Services: Identical Organizations
1219 ELSIF p_rule_id=238 THEN
1220 IF NOT HZ_MATCH_RULE_238.check_staged THEN
1221 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1222 FND_MSG_PUB.ADD;
1223 RAISE FND_API.G_EXC_ERROR;
1224 END IF;
1225 HZ_MATCH_RULE_238.find_party_details(
1226 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
1227 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
1228 -- Code for Match rule Web Services: Identical Persons
1229 ELSIF p_rule_id=240 THEN
1230 IF NOT HZ_MATCH_RULE_240.check_staged THEN
1231 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1232 FND_MSG_PUB.ADD;
1233 RAISE FND_API.G_EXC_ERROR;
1234 END IF;
1235 HZ_MATCH_RULE_240.find_party_details(
1236 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
1237 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
1238 END IF;
1239 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1240 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);
1241 END IF;
1242 --Standard call to get message count and if count is 1, get message info
1243 FND_MSG_PUB.Count_And_Get(
1244 p_encoded => FND_API.G_FALSE,
1245 p_count => x_msg_count,
1246 p_data => x_msg_data);
1247 EXCEPTION
1248 WHEN FND_API.G_EXC_ERROR THEN
1249 x_return_status := FND_API.G_RET_STS_ERROR;
1250 FND_MSG_PUB.Count_And_Get(
1251 p_encoded => FND_API.G_FALSE,
1252 p_count => x_msg_count,
1253 p_data => x_msg_data);
1254 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1255 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1256 FND_MSG_PUB.Count_And_Get(
1257 p_encoded => FND_API.G_FALSE,
1258 p_count => x_msg_count,
1259 p_data => x_msg_data);
1260
1261 WHEN OTHERS THEN
1262 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1263 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_API_ERROR');
1264 FND_MESSAGE.SET_TOKEN('PROC' ,'HZ_PARTY_SEARCH');
1265 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1266 FND_MSG_PUB.ADD;
1267
1268 FND_MSG_PUB.Count_And_Get(
1269 p_encoded => FND_API.G_FALSE,
1270 p_count => x_msg_count,
1271 p_data => x_msg_data);
1272 END;
1273
1274 PROCEDURE find_duplicate_parties (
1275 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
1276 p_rule_id IN NUMBER,
1277 p_party_id IN NUMBER,
1278 p_restrict_sql IN VARCHAR2,
1279 p_match_type IN VARCHAR2,
1280 p_dup_batch_id IN NUMBER,
1281 p_search_merged IN VARCHAR2,
1282 x_dup_set_id OUT NUMBER,
1283 x_search_ctx_id OUT NUMBER,
1284 x_num_matches OUT NUMBER,
1285 x_return_status OUT VARCHAR2,
1286 x_msg_count OUT NUMBER,
1287 x_msg_data OUT VARCHAR2
1288 ) IS
1289 CURSOR c_match_rule IS
1290 SELECT COMPILATION_FLAG
1291 FROM HZ_MATCH_RULES_VL
1292 WHERE MATCH_RULE_ID = p_rule_id;
1293 l_cmp_flag VARCHAR2(1);
1294 BEGIN
1295 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1296 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);
1297 END IF;
1298 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
1299 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);
1300 END IF;
1301
1302 -- Initialize return status and message stack
1303 x_return_status := FND_API.G_RET_STS_SUCCESS;
1304 IF FND_API.to_Boolean(p_init_msg_list) THEN
1305 FND_MSG_PUB.initialize;
1306 END IF;
1307
1308 IF p_rule_id IS NULL OR p_rule_id = 0 THEN
1309 -- Find the match rule
1310 null;
1311
1312 -- No MATCH RULE FOUND
1313 FND_MESSAGE.SET_NAME('AR', 'HZ_NO_MATCH_RULE');
1314 FND_MSG_PUB.ADD;
1315 RAISE FND_API.G_EXC_ERROR;
1316 END IF;
1317 IF g_last_rule<>p_rule_id OR NOT g_last_rule_valid THEN
1318 OPEN c_match_rule;
1319 FETCH c_match_rule INTO l_cmp_flag;
1320 IF c_match_rule%NOTFOUND OR l_cmp_flag <> 'C' THEN
1321 FND_MESSAGE.SET_NAME('AR', 'HZ_INVALID_MATCH_RULE');
1322 FND_MSG_PUB.ADD;
1323 RAISE FND_API.G_EXC_ERROR;
1324 END IF;
1325 g_last_rule := p_rule_id;
1326 g_last_rule_valid := TRUE;
1327 END IF;
1328 -- Code for Match rule SAMPLE: ORGANIZATIONS_OPTIMIZED
1329 IF p_rule_id=2 THEN
1330 IF NOT HZ_MATCH_RULE_2.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_2.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 SAMPLE: PERSON_OPTIMIZED
1339 ELSIF p_rule_id=3 THEN
1340 IF NOT HZ_MATCH_RULE_3.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_3.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: ADDRESS_ORGANIZATIONS
1349 ELSIF p_rule_id=4 THEN
1350 IF NOT HZ_MATCH_RULE_4.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_4.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: ADDRESS_PERSONS
1359 ELSIF p_rule_id=5 THEN
1360 IF NOT HZ_MATCH_RULE_5.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_5.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 SAMPLE: SIMILAR_ORGANIZATION
1369 ELSIF p_rule_id=6 THEN
1370 IF NOT HZ_MATCH_RULE_6.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_6.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 SAMPLE: SIMILAR_PERSON
1379 ELSIF p_rule_id=7 THEN
1380 IF NOT HZ_MATCH_RULE_7.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_7.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 SAMPLE: SEARCH
1389 ELSIF p_rule_id=8 THEN
1390 IF NOT HZ_MATCH_RULE_8.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_8.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 RM SEARCH RULE
1399 ELSIF p_rule_id=32 THEN
1400 IF NOT HZ_MATCH_RULE_32.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_32.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:BASIC SEARCH RULE
1409 ELSIF p_rule_id=33 THEN
1410 IF NOT HZ_MATCH_RULE_33.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_33.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:ADVANCED SEARCH RULE
1419 ELSIF p_rule_id=34 THEN
1420 IF NOT HZ_MATCH_RULE_34.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_34.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 DL SMART SEARCH
1429 ELSIF p_rule_id=35 THEN
1430 IF NOT HZ_MATCH_RULE_35.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_35.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 DL ADDRESS AND RELATIONSHIP SEARCH
1439 ELSIF p_rule_id=36 THEN
1440 IF NOT HZ_MATCH_RULE_36.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_36.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 ADDRESS DEFAULT
1449 ELSIF p_rule_id=37 THEN
1450 IF NOT HZ_MATCH_RULE_37.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_37.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 DL RELATIONSHIP DEFAULT
1459 ELSIF p_rule_id=38 THEN
1460 IF NOT HZ_MATCH_RULE_38.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_38.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 SAMPLE: SEARCH ADDRESS ORGANIZATIONS EXACT
1469 ELSIF p_rule_id=39 THEN
1470 IF NOT HZ_MATCH_RULE_39.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_39.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 SAMPLE: SEARCH SIMILAR ORGANIZATION EXACT
1479 ELSIF p_rule_id=40 THEN
1480 IF NOT HZ_MATCH_RULE_40.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_40.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 SAMPLE: SEARCH SIMILAR PERSON EXACT
1489 ELSIF p_rule_id=41 THEN
1490 IF NOT HZ_MATCH_RULE_41.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_41.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 SAMPLE: SEARCH EXACT
1499 ELSIF p_rule_id=42 THEN
1500 IF NOT HZ_MATCH_RULE_42.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_42.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 DL SYSTEM DUPLICATE IDENTIFICATION
1509 ELSIF p_rule_id=48 THEN
1510 IF NOT HZ_MATCH_RULE_48.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_48.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 BULK MATCH: IDENTICAL ORGANIZATIONS
1519 ELSIF p_rule_id=50 THEN
1520 IF NOT HZ_MATCH_RULE_50.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_50.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 BULK MATCH: IDENTICAL PERSONS
1529 ELSIF p_rule_id=51 THEN
1530 IF NOT HZ_MATCH_RULE_51.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_51.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 BULK MATCH: IDENTICAL PARTIES
1539 ELSIF p_rule_id=52 THEN
1540 IF NOT HZ_MATCH_RULE_52.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_52.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 CREDIT MANAGEMENT SEARCH
1549 ELSIF p_rule_id=53 THEN
1550 IF NOT HZ_MATCH_RULE_53.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_53.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 -- Code for Match rule HZ_PERSON_SIMPLE_SEARCH_RULE
1559 ELSIF p_rule_id=58 THEN
1560 IF NOT HZ_MATCH_RULE_58.check_staged THEN
1561 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1562 FND_MSG_PUB.ADD;
1563 RAISE FND_API.G_EXC_ERROR;
1564 END IF;
1565 HZ_MATCH_RULE_58.find_duplicate_parties(
1566 p_rule_id,p_party_id,
1567 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1568 -- Code for Match rule HZ_PERSON_ADVANCED_SEARCH_MATCH_RULE
1569 ELSIF p_rule_id=60 THEN
1570 IF NOT HZ_MATCH_RULE_60.check_staged THEN
1571 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1572 FND_MSG_PUB.ADD;
1573 RAISE FND_API.G_EXC_ERROR;
1574 END IF;
1575 HZ_MATCH_RULE_60.find_duplicate_parties(
1576 p_rule_id,p_party_id,
1577 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1578 -- Code for Match rule HZ_ORG_SIMPLE_SEARCH_RULE
1579 ELSIF p_rule_id=61 THEN
1580 IF NOT HZ_MATCH_RULE_61.check_staged THEN
1581 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1582 FND_MSG_PUB.ADD;
1583 RAISE FND_API.G_EXC_ERROR;
1584 END IF;
1585 HZ_MATCH_RULE_61.find_duplicate_parties(
1586 p_rule_id,p_party_id,
1587 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1588 -- Code for Match rule HZ_ORG_ADV_SEARCH_RULE
1589 ELSIF p_rule_id=62 THEN
1590 IF NOT HZ_MATCH_RULE_62.check_staged THEN
1591 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1592 FND_MSG_PUB.ADD;
1593 RAISE FND_API.G_EXC_ERROR;
1594 END IF;
1595 HZ_MATCH_RULE_62.find_duplicate_parties(
1596 p_rule_id,p_party_id,
1597 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1598 -- Code for Match rule HZ_CONTACT_SIMPLE_SEARCH_RULE
1599 ELSIF p_rule_id=98 THEN
1600 IF NOT HZ_MATCH_RULE_98.check_staged THEN
1601 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1602 FND_MSG_PUB.ADD;
1603 RAISE FND_API.G_EXC_ERROR;
1604 END IF;
1605 HZ_MATCH_RULE_98.find_duplicate_parties(
1606 p_rule_id,p_party_id,
1607 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1608 -- Code for Match rule HZ_CONTACT_ADV_SEARCH_MATCH_RULE
1609 ELSIF p_rule_id=99 THEN
1610 IF NOT HZ_MATCH_RULE_99.check_staged THEN
1611 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1612 FND_MSG_PUB.ADD;
1613 RAISE FND_API.G_EXC_ERROR;
1614 END IF;
1615 HZ_MATCH_RULE_99.find_duplicate_parties(
1616 p_rule_id,p_party_id,
1617 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1618 -- Code for Match rule Web Services: Identical Organizations
1619 ELSIF p_rule_id=238 THEN
1620 IF NOT HZ_MATCH_RULE_238.check_staged THEN
1621 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1622 FND_MSG_PUB.ADD;
1623 RAISE FND_API.G_EXC_ERROR;
1624 END IF;
1625 HZ_MATCH_RULE_238.find_duplicate_parties(
1626 p_rule_id,p_party_id,
1627 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1628 -- Code for Match rule Web Services: Identical Persons
1629 ELSIF p_rule_id=240 THEN
1630 IF NOT HZ_MATCH_RULE_240.check_staged THEN
1631 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1632 FND_MSG_PUB.ADD;
1633 RAISE FND_API.G_EXC_ERROR;
1634 END IF;
1635 HZ_MATCH_RULE_240.find_duplicate_parties(
1636 p_rule_id,p_party_id,
1637 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1638 END IF;
1639 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1640 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);
1641 END IF;
1642 --Standard call to get message count and if count is 1, get message info
1643 FND_MSG_PUB.Count_And_Get(
1644 p_encoded => FND_API.G_FALSE,
1645 p_count => x_msg_count,
1646 p_data => x_msg_data);
1647 EXCEPTION
1648 WHEN FND_API.G_EXC_ERROR THEN
1649 x_return_status := FND_API.G_RET_STS_ERROR;
1650 FND_MSG_PUB.Count_And_Get(
1651 p_encoded => FND_API.G_FALSE,
1652 p_count => x_msg_count,
1653 p_data => x_msg_data);
1654 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1655 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1656 FND_MSG_PUB.Count_And_Get(
1657 p_encoded => FND_API.G_FALSE,
1658 p_count => x_msg_count,
1659 p_data => x_msg_data);
1660
1661 WHEN OTHERS THEN
1662 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1663 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_API_ERROR');
1664 FND_MESSAGE.SET_TOKEN('PROC' ,'HZ_PARTY_SEARCH');
1665 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1666 FND_MSG_PUB.ADD;
1667
1668 FND_MSG_PUB.Count_And_Get(
1669 p_encoded => FND_API.G_FALSE,
1670 p_count => x_msg_count,
1671 p_data => x_msg_data);
1672 END;
1673
1674
1675 PROCEDURE find_duplicate_party_sites (
1676 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
1677 p_rule_id IN NUMBER,
1678 p_party_site_id IN NUMBER,
1679 p_party_id IN NUMBER,
1680 p_restrict_sql IN VARCHAR2,
1681 p_match_type IN VARCHAR2,
1682 x_search_ctx_id OUT NUMBER,
1683 x_num_matches OUT NUMBER,
1684 x_return_status OUT VARCHAR2,
1685 x_msg_count OUT NUMBER,
1686 x_msg_data OUT VARCHAR2
1687 ) IS
1688 CURSOR c_match_rule IS
1689 SELECT COMPILATION_FLAG
1690 FROM HZ_MATCH_RULES_VL
1691 WHERE MATCH_RULE_ID = p_rule_id;
1692 l_cmp_flag VARCHAR2(1);
1693 BEGIN
1694 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1695 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);
1696 END IF;
1697 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
1698 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);
1699 END IF;
1700
1701 -- Initialize return status and message stack
1702 x_return_status := FND_API.G_RET_STS_SUCCESS;
1703 IF FND_API.to_Boolean(p_init_msg_list) THEN
1704 FND_MSG_PUB.initialize;
1705 END IF;
1706
1707 IF p_rule_id IS NULL OR p_rule_id = 0 THEN
1708 -- Find the match rule
1709 null;
1710
1711 -- No MATCH RULE FOUND
1712 FND_MESSAGE.SET_NAME('AR', 'HZ_NO_MATCH_RULE');
1713 FND_MSG_PUB.ADD;
1714 RAISE FND_API.G_EXC_ERROR;
1715 END IF;
1716 OPEN c_match_rule;
1717 FETCH c_match_rule INTO l_cmp_flag;
1718 IF c_match_rule%NOTFOUND OR l_cmp_flag <> 'C' THEN
1719 FND_MESSAGE.SET_NAME('AR', 'HZ_INVALID_MATCH_RULE');
1720 FND_MSG_PUB.ADD;
1721 RAISE FND_API.G_EXC_ERROR;
1722 END IF;
1723 -- Code for Match rule SAMPLE: ORGANIZATIONS_OPTIMIZED
1724 IF p_rule_id=2 THEN
1725 IF NOT HZ_MATCH_RULE_2.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_2.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: PERSON_OPTIMIZED
1734 ELSIF p_rule_id=3 THEN
1735 IF NOT HZ_MATCH_RULE_3.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_3.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 SAMPLE: ADDRESS_ORGANIZATIONS
1744 ELSIF p_rule_id=4 THEN
1745 IF NOT HZ_MATCH_RULE_4.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_4.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 SAMPLE: ADDRESS_PERSONS
1754 ELSIF p_rule_id=5 THEN
1755 IF NOT HZ_MATCH_RULE_5.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_5.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 SAMPLE: SIMILAR_ORGANIZATION
1764 ELSIF p_rule_id=6 THEN
1765 IF NOT HZ_MATCH_RULE_6.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_6.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 SAMPLE: SIMILAR_PERSON
1774 ELSIF p_rule_id=7 THEN
1775 IF NOT HZ_MATCH_RULE_7.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_7.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
1784 ELSIF p_rule_id=8 THEN
1785 IF NOT HZ_MATCH_RULE_8.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_8.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 RM SEARCH RULE
1794 ELSIF p_rule_id=32 THEN
1795 IF NOT HZ_MATCH_RULE_32.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_32.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:BASIC SEARCH RULE
1804 ELSIF p_rule_id=33 THEN
1805 IF NOT HZ_MATCH_RULE_33.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_33.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:ADVANCED SEARCH RULE
1814 ELSIF p_rule_id=34 THEN
1815 IF NOT HZ_MATCH_RULE_34.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_34.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 SMART SEARCH
1824 ELSIF p_rule_id=35 THEN
1825 IF NOT HZ_MATCH_RULE_35.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_35.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 DL ADDRESS AND RELATIONSHIP SEARCH
1834 ELSIF p_rule_id=36 THEN
1835 IF NOT HZ_MATCH_RULE_36.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_36.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 DL ADDRESS DEFAULT
1844 ELSIF p_rule_id=37 THEN
1845 IF NOT HZ_MATCH_RULE_37.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_37.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 DL RELATIONSHIP DEFAULT
1854 ELSIF p_rule_id=38 THEN
1855 IF NOT HZ_MATCH_RULE_38.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_38.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 SAMPLE: SEARCH ADDRESS ORGANIZATIONS EXACT
1864 ELSIF p_rule_id=39 THEN
1865 IF NOT HZ_MATCH_RULE_39.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_39.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 SAMPLE: SEARCH SIMILAR ORGANIZATION EXACT
1874 ELSIF p_rule_id=40 THEN
1875 IF NOT HZ_MATCH_RULE_40.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_40.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 SAMPLE: SEARCH SIMILAR PERSON EXACT
1884 ELSIF p_rule_id=41 THEN
1885 IF NOT HZ_MATCH_RULE_41.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_41.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 SAMPLE: SEARCH EXACT
1894 ELSIF p_rule_id=42 THEN
1895 IF NOT HZ_MATCH_RULE_42.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_42.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 DL SYSTEM DUPLICATE IDENTIFICATION
1904 ELSIF p_rule_id=48 THEN
1905 IF NOT HZ_MATCH_RULE_48.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_48.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 BULK MATCH: IDENTICAL ORGANIZATIONS
1914 ELSIF p_rule_id=50 THEN
1915 IF NOT HZ_MATCH_RULE_50.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_50.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 BULK MATCH: IDENTICAL PERSONS
1924 ELSIF p_rule_id=51 THEN
1925 IF NOT HZ_MATCH_RULE_51.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_51.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 -- Code for Match rule BULK MATCH: IDENTICAL PARTIES
1934 ELSIF p_rule_id=52 THEN
1935 IF NOT HZ_MATCH_RULE_52.check_staged THEN
1936 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1937 FND_MSG_PUB.ADD;
1938 RAISE FND_API.G_EXC_ERROR;
1939 END IF;
1940 HZ_MATCH_RULE_52.find_duplicate_party_sites(
1941 p_rule_id,p_party_site_id,p_party_id,
1942 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1943 -- Code for Match rule CREDIT MANAGEMENT SEARCH
1944 ELSIF p_rule_id=53 THEN
1945 IF NOT HZ_MATCH_RULE_53.check_staged THEN
1946 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1947 FND_MSG_PUB.ADD;
1948 RAISE FND_API.G_EXC_ERROR;
1949 END IF;
1950 HZ_MATCH_RULE_53.find_duplicate_party_sites(
1951 p_rule_id,p_party_site_id,p_party_id,
1952 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1953 -- Code for Match rule HZ_PERSON_SIMPLE_SEARCH_RULE
1954 ELSIF p_rule_id=58 THEN
1955 IF NOT HZ_MATCH_RULE_58.check_staged THEN
1956 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1957 FND_MSG_PUB.ADD;
1958 RAISE FND_API.G_EXC_ERROR;
1959 END IF;
1960 HZ_MATCH_RULE_58.find_duplicate_party_sites(
1961 p_rule_id,p_party_site_id,p_party_id,
1962 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1963 -- Code for Match rule HZ_PERSON_ADVANCED_SEARCH_MATCH_RULE
1964 ELSIF p_rule_id=60 THEN
1965 IF NOT HZ_MATCH_RULE_60.check_staged THEN
1966 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1967 FND_MSG_PUB.ADD;
1968 RAISE FND_API.G_EXC_ERROR;
1969 END IF;
1970 HZ_MATCH_RULE_60.find_duplicate_party_sites(
1971 p_rule_id,p_party_site_id,p_party_id,
1972 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1973 -- Code for Match rule HZ_ORG_SIMPLE_SEARCH_RULE
1974 ELSIF p_rule_id=61 THEN
1975 IF NOT HZ_MATCH_RULE_61.check_staged THEN
1976 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1977 FND_MSG_PUB.ADD;
1978 RAISE FND_API.G_EXC_ERROR;
1979 END IF;
1980 HZ_MATCH_RULE_61.find_duplicate_party_sites(
1981 p_rule_id,p_party_site_id,p_party_id,
1982 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1983 -- Code for Match rule HZ_ORG_ADV_SEARCH_RULE
1984 ELSIF p_rule_id=62 THEN
1985 IF NOT HZ_MATCH_RULE_62.check_staged THEN
1986 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1987 FND_MSG_PUB.ADD;
1988 RAISE FND_API.G_EXC_ERROR;
1989 END IF;
1990 HZ_MATCH_RULE_62.find_duplicate_party_sites(
1991 p_rule_id,p_party_site_id,p_party_id,
1992 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1993 -- Code for Match rule HZ_CONTACT_SIMPLE_SEARCH_RULE
1994 ELSIF p_rule_id=98 THEN
1995 IF NOT HZ_MATCH_RULE_98.check_staged THEN
1996 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1997 FND_MSG_PUB.ADD;
1998 RAISE FND_API.G_EXC_ERROR;
1999 END IF;
2000 HZ_MATCH_RULE_98.find_duplicate_party_sites(
2001 p_rule_id,p_party_site_id,p_party_id,
2002 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2003 -- Code for Match rule HZ_CONTACT_ADV_SEARCH_MATCH_RULE
2004 ELSIF p_rule_id=99 THEN
2005 IF NOT HZ_MATCH_RULE_99.check_staged THEN
2006 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2007 FND_MSG_PUB.ADD;
2008 RAISE FND_API.G_EXC_ERROR;
2009 END IF;
2010 HZ_MATCH_RULE_99.find_duplicate_party_sites(
2011 p_rule_id,p_party_site_id,p_party_id,
2012 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2013 -- Code for Match rule Web Services: Identical Organizations
2014 ELSIF p_rule_id=238 THEN
2015 IF NOT HZ_MATCH_RULE_238.check_staged THEN
2016 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2017 FND_MSG_PUB.ADD;
2018 RAISE FND_API.G_EXC_ERROR;
2019 END IF;
2020 HZ_MATCH_RULE_238.find_duplicate_party_sites(
2021 p_rule_id,p_party_site_id,p_party_id,
2022 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2023 -- Code for Match rule Web Services: Identical Persons
2024 ELSIF p_rule_id=240 THEN
2025 IF NOT HZ_MATCH_RULE_240.check_staged THEN
2026 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2027 FND_MSG_PUB.ADD;
2028 RAISE FND_API.G_EXC_ERROR;
2029 END IF;
2030 HZ_MATCH_RULE_240.find_duplicate_party_sites(
2031 p_rule_id,p_party_site_id,p_party_id,
2032 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2033 END IF;
2034 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2035 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);
2036 END IF;
2037 --Standard call to get message count and if count is 1, get message info
2038 FND_MSG_PUB.Count_And_Get(
2039 p_encoded => FND_API.G_FALSE,
2040 p_count => x_msg_count,
2041 p_data => x_msg_data);
2042 EXCEPTION
2043 WHEN FND_API.G_EXC_ERROR THEN
2044 x_return_status := FND_API.G_RET_STS_ERROR;
2045 FND_MSG_PUB.Count_And_Get(
2046 p_encoded => FND_API.G_FALSE,
2047 p_count => x_msg_count,
2048 p_data => x_msg_data);
2049 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2050 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2051 FND_MSG_PUB.Count_And_Get(
2052 p_encoded => FND_API.G_FALSE,
2053 p_count => x_msg_count,
2054 p_data => x_msg_data);
2055
2056 WHEN OTHERS THEN
2057 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2058 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_API_ERROR');
2059 FND_MESSAGE.SET_TOKEN('PROC' ,'HZ_PARTY_SEARCH');
2060 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
2061 FND_MSG_PUB.ADD;
2062
2063 FND_MSG_PUB.Count_And_Get(
2064 p_encoded => FND_API.G_FALSE,
2065 p_count => x_msg_count,
2066 p_data => x_msg_data);
2067 END;
2068
2069 PROCEDURE find_duplicate_contacts (
2070 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
2071 p_rule_id IN NUMBER,
2072 p_org_contact_id IN NUMBER,
2073 p_party_id IN NUMBER,
2074 p_restrict_sql IN VARCHAR2,
2075 p_match_type IN VARCHAR2,
2076 x_search_ctx_id OUT NUMBER,
2077 x_num_matches OUT NUMBER,
2078 x_return_status OUT VARCHAR2,
2079 x_msg_count OUT NUMBER,
2080 x_msg_data OUT VARCHAR2
2081 ) IS
2082 CURSOR c_match_rule IS
2083 SELECT COMPILATION_FLAG
2084 FROM HZ_MATCH_RULES_VL
2085 WHERE MATCH_RULE_ID = p_rule_id;
2086 l_cmp_flag VARCHAR2(1);
2087 BEGIN
2088 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2089 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);
2090 END IF;
2091 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
2092 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);
2093 END IF;
2094
2095 -- Initialize return status and message stack
2096 x_return_status := FND_API.G_RET_STS_SUCCESS;
2097 IF FND_API.to_Boolean(p_init_msg_list) THEN
2098 FND_MSG_PUB.initialize;
2099 END IF;
2100
2101 IF p_rule_id IS NULL OR p_rule_id = 0 THEN
2102 -- Find the match rule
2103 null;
2104
2105 -- No MATCH RULE FOUND
2106 FND_MESSAGE.SET_NAME('AR', 'HZ_NO_MATCH_RULE');
2107 FND_MSG_PUB.ADD;
2108 RAISE FND_API.G_EXC_ERROR;
2109 END IF;
2110 OPEN c_match_rule;
2111 FETCH c_match_rule INTO l_cmp_flag;
2112 IF c_match_rule%NOTFOUND OR l_cmp_flag <> 'C' THEN
2113 FND_MESSAGE.SET_NAME('AR', 'HZ_INVALID_MATCH_RULE');
2114 FND_MSG_PUB.ADD;
2115 RAISE FND_API.G_EXC_ERROR;
2116 END IF;
2117 -- Code for Match rule SAMPLE: ORGANIZATIONS_OPTIMIZED
2118 IF p_rule_id=2 THEN
2119 IF NOT HZ_MATCH_RULE_2.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_2.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 SAMPLE: PERSON_OPTIMIZED
2128 ELSIF p_rule_id=3 THEN
2129 IF NOT HZ_MATCH_RULE_3.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_3.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 SAMPLE: ADDRESS_ORGANIZATIONS
2138 ELSIF p_rule_id=4 THEN
2139 IF NOT HZ_MATCH_RULE_4.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_4.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 SAMPLE: ADDRESS_PERSONS
2148 ELSIF p_rule_id=5 THEN
2149 IF NOT HZ_MATCH_RULE_5.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_5.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: SIMILAR_ORGANIZATION
2158 ELSIF p_rule_id=6 THEN
2159 IF NOT HZ_MATCH_RULE_6.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_6.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: SIMILAR_PERSON
2168 ELSIF p_rule_id=7 THEN
2169 IF NOT HZ_MATCH_RULE_7.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_7.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
2178 ELSIF p_rule_id=8 THEN
2179 IF NOT HZ_MATCH_RULE_8.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_8.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 RM SEARCH RULE
2188 ELSIF p_rule_id=32 THEN
2189 IF NOT HZ_MATCH_RULE_32.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_32.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 SAMPLE:BASIC SEARCH RULE
2198 ELSIF p_rule_id=33 THEN
2199 IF NOT HZ_MATCH_RULE_33.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_33.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 SAMPLE:ADVANCED SEARCH RULE
2208 ELSIF p_rule_id=34 THEN
2209 IF NOT HZ_MATCH_RULE_34.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_34.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 DL SMART SEARCH
2218 ELSIF p_rule_id=35 THEN
2219 IF NOT HZ_MATCH_RULE_35.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_35.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 DL ADDRESS AND RELATIONSHIP SEARCH
2228 ELSIF p_rule_id=36 THEN
2229 IF NOT HZ_MATCH_RULE_36.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_36.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 DL ADDRESS DEFAULT
2238 ELSIF p_rule_id=37 THEN
2239 IF NOT HZ_MATCH_RULE_37.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_37.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 DL RELATIONSHIP DEFAULT
2248 ELSIF p_rule_id=38 THEN
2249 IF NOT HZ_MATCH_RULE_38.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_38.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 SAMPLE: SEARCH ADDRESS ORGANIZATIONS EXACT
2258 ELSIF p_rule_id=39 THEN
2259 IF NOT HZ_MATCH_RULE_39.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_39.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 SAMPLE: SEARCH SIMILAR ORGANIZATION EXACT
2268 ELSIF p_rule_id=40 THEN
2269 IF NOT HZ_MATCH_RULE_40.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_40.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 SAMPLE: SEARCH SIMILAR PERSON EXACT
2278 ELSIF p_rule_id=41 THEN
2279 IF NOT HZ_MATCH_RULE_41.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_41.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 SAMPLE: SEARCH EXACT
2288 ELSIF p_rule_id=42 THEN
2289 IF NOT HZ_MATCH_RULE_42.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_42.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 DL SYSTEM DUPLICATE IDENTIFICATION
2298 ELSIF p_rule_id=48 THEN
2299 IF NOT HZ_MATCH_RULE_48.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_48.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 -- Code for Match rule BULK MATCH: IDENTICAL ORGANIZATIONS
2308 ELSIF p_rule_id=50 THEN
2309 IF NOT HZ_MATCH_RULE_50.check_staged THEN
2310 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2311 FND_MSG_PUB.ADD;
2312 RAISE FND_API.G_EXC_ERROR;
2313 END IF;
2314 HZ_MATCH_RULE_50.find_duplicate_contacts(
2315 p_rule_id,p_org_contact_id,p_party_id,
2316 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2317 -- Code for Match rule BULK MATCH: IDENTICAL PERSONS
2318 ELSIF p_rule_id=51 THEN
2319 IF NOT HZ_MATCH_RULE_51.check_staged THEN
2320 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2321 FND_MSG_PUB.ADD;
2322 RAISE FND_API.G_EXC_ERROR;
2323 END IF;
2324 HZ_MATCH_RULE_51.find_duplicate_contacts(
2325 p_rule_id,p_org_contact_id,p_party_id,
2326 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2327 -- Code for Match rule BULK MATCH: IDENTICAL PARTIES
2328 ELSIF p_rule_id=52 THEN
2329 IF NOT HZ_MATCH_RULE_52.check_staged THEN
2330 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2331 FND_MSG_PUB.ADD;
2332 RAISE FND_API.G_EXC_ERROR;
2333 END IF;
2334 HZ_MATCH_RULE_52.find_duplicate_contacts(
2335 p_rule_id,p_org_contact_id,p_party_id,
2336 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2337 -- Code for Match rule CREDIT MANAGEMENT SEARCH
2338 ELSIF p_rule_id=53 THEN
2339 IF NOT HZ_MATCH_RULE_53.check_staged THEN
2340 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2341 FND_MSG_PUB.ADD;
2342 RAISE FND_API.G_EXC_ERROR;
2343 END IF;
2344 HZ_MATCH_RULE_53.find_duplicate_contacts(
2345 p_rule_id,p_org_contact_id,p_party_id,
2346 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2347 -- Code for Match rule HZ_PERSON_SIMPLE_SEARCH_RULE
2348 ELSIF p_rule_id=58 THEN
2349 IF NOT HZ_MATCH_RULE_58.check_staged THEN
2350 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2351 FND_MSG_PUB.ADD;
2352 RAISE FND_API.G_EXC_ERROR;
2353 END IF;
2354 HZ_MATCH_RULE_58.find_duplicate_contacts(
2355 p_rule_id,p_org_contact_id,p_party_id,
2356 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2357 -- Code for Match rule HZ_PERSON_ADVANCED_SEARCH_MATCH_RULE
2358 ELSIF p_rule_id=60 THEN
2359 IF NOT HZ_MATCH_RULE_60.check_staged THEN
2360 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2361 FND_MSG_PUB.ADD;
2362 RAISE FND_API.G_EXC_ERROR;
2363 END IF;
2364 HZ_MATCH_RULE_60.find_duplicate_contacts(
2365 p_rule_id,p_org_contact_id,p_party_id,
2366 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2367 -- Code for Match rule HZ_ORG_SIMPLE_SEARCH_RULE
2368 ELSIF p_rule_id=61 THEN
2369 IF NOT HZ_MATCH_RULE_61.check_staged THEN
2370 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2371 FND_MSG_PUB.ADD;
2372 RAISE FND_API.G_EXC_ERROR;
2373 END IF;
2374 HZ_MATCH_RULE_61.find_duplicate_contacts(
2375 p_rule_id,p_org_contact_id,p_party_id,
2376 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2377 -- Code for Match rule HZ_ORG_ADV_SEARCH_RULE
2378 ELSIF p_rule_id=62 THEN
2379 IF NOT HZ_MATCH_RULE_62.check_staged THEN
2380 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2381 FND_MSG_PUB.ADD;
2382 RAISE FND_API.G_EXC_ERROR;
2383 END IF;
2384 HZ_MATCH_RULE_62.find_duplicate_contacts(
2385 p_rule_id,p_org_contact_id,p_party_id,
2386 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2387 -- Code for Match rule HZ_CONTACT_SIMPLE_SEARCH_RULE
2388 ELSIF p_rule_id=98 THEN
2389 IF NOT HZ_MATCH_RULE_98.check_staged THEN
2390 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2391 FND_MSG_PUB.ADD;
2392 RAISE FND_API.G_EXC_ERROR;
2393 END IF;
2394 HZ_MATCH_RULE_98.find_duplicate_contacts(
2395 p_rule_id,p_org_contact_id,p_party_id,
2396 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2397 -- Code for Match rule HZ_CONTACT_ADV_SEARCH_MATCH_RULE
2398 ELSIF p_rule_id=99 THEN
2399 IF NOT HZ_MATCH_RULE_99.check_staged THEN
2400 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2401 FND_MSG_PUB.ADD;
2402 RAISE FND_API.G_EXC_ERROR;
2403 END IF;
2404 HZ_MATCH_RULE_99.find_duplicate_contacts(
2405 p_rule_id,p_org_contact_id,p_party_id,
2406 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2407 -- Code for Match rule Web Services: Identical Organizations
2408 ELSIF p_rule_id=238 THEN
2409 IF NOT HZ_MATCH_RULE_238.check_staged THEN
2410 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2411 FND_MSG_PUB.ADD;
2412 RAISE FND_API.G_EXC_ERROR;
2413 END IF;
2414 HZ_MATCH_RULE_238.find_duplicate_contacts(
2415 p_rule_id,p_org_contact_id,p_party_id,
2416 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2417 -- Code for Match rule Web Services: Identical Persons
2418 ELSIF p_rule_id=240 THEN
2419 IF NOT HZ_MATCH_RULE_240.check_staged THEN
2420 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2421 FND_MSG_PUB.ADD;
2422 RAISE FND_API.G_EXC_ERROR;
2423 END IF;
2424 HZ_MATCH_RULE_240.find_duplicate_contacts(
2425 p_rule_id,p_org_contact_id,p_party_id,
2426 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2427 END IF;
2428 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2429 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);
2430 END IF;
2431 --Standard call to get message count and if count is 1, get message info
2432 FND_MSG_PUB.Count_And_Get(
2433 p_encoded => FND_API.G_FALSE,
2434 p_count => x_msg_count,
2435 p_data => x_msg_data);
2436 EXCEPTION
2437 WHEN FND_API.G_EXC_ERROR THEN
2438 x_return_status := FND_API.G_RET_STS_ERROR;
2439 FND_MSG_PUB.Count_And_Get(
2440 p_encoded => FND_API.G_FALSE,
2441 p_count => x_msg_count,
2442 p_data => x_msg_data);
2443 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2444 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2445 FND_MSG_PUB.Count_And_Get(
2446 p_encoded => FND_API.G_FALSE,
2447 p_count => x_msg_count,
2448 p_data => x_msg_data);
2449
2450 WHEN OTHERS THEN
2451 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2452 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_API_ERROR');
2453 FND_MESSAGE.SET_TOKEN('PROC' ,'HZ_PARTY_SEARCH');
2454 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
2455 FND_MSG_PUB.ADD;
2456
2457 FND_MSG_PUB.Count_And_Get(
2458 p_encoded => FND_API.G_FALSE,
2459 p_count => x_msg_count,
2460 p_data => x_msg_data);
2461 END;
2462
2463 PROCEDURE find_duplicate_contact_points (
2464 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
2465 p_rule_id IN NUMBER,
2466 p_contact_point_id IN NUMBER,
2467 p_party_id IN NUMBER,
2468 p_restrict_sql IN VARCHAR2,
2469 p_match_type IN VARCHAR2,
2470 x_search_ctx_id OUT NUMBER,
2471 x_num_matches OUT NUMBER,
2472 x_return_status OUT VARCHAR2,
2473 x_msg_count OUT NUMBER,
2474 x_msg_data OUT VARCHAR2
2475 ) IS
2476 CURSOR c_match_rule IS
2477 SELECT COMPILATION_FLAG
2478 FROM HZ_MATCH_RULES_VL
2479 WHERE MATCH_RULE_ID = p_rule_id;
2480 l_cmp_flag VARCHAR2(1);
2481 BEGIN
2482 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2483 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);
2484 END IF;
2485 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
2486 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);
2487 END IF;
2488
2489 -- Initialize return status and message stack
2490 x_return_status := FND_API.G_RET_STS_SUCCESS;
2491 IF FND_API.to_Boolean(p_init_msg_list) THEN
2492 FND_MSG_PUB.initialize;
2493 END IF;
2494
2495 IF p_rule_id IS NULL OR p_rule_id = 0 THEN
2496 -- Find the match rule
2497 null;
2498
2499 -- No MATCH RULE FOUND
2500 FND_MESSAGE.SET_NAME('AR', 'HZ_NO_MATCH_RULE');
2501 FND_MSG_PUB.ADD;
2502 RAISE FND_API.G_EXC_ERROR;
2503 END IF;
2504 OPEN c_match_rule;
2505 FETCH c_match_rule INTO l_cmp_flag;
2506 IF c_match_rule%NOTFOUND OR l_cmp_flag <> 'C' THEN
2507 FND_MESSAGE.SET_NAME('AR', 'HZ_INVALID_MATCH_RULE');
2508 FND_MSG_PUB.ADD;
2509 RAISE FND_API.G_EXC_ERROR;
2510 END IF;
2511 -- Code for Match rule SAMPLE: ORGANIZATIONS_OPTIMIZED
2512 IF p_rule_id=2 THEN
2513 IF NOT HZ_MATCH_RULE_2.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_2.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 SAMPLE: PERSON_OPTIMIZED
2522 ELSIF p_rule_id=3 THEN
2523 IF NOT HZ_MATCH_RULE_3.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_3.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: ADDRESS_ORGANIZATIONS
2532 ELSIF p_rule_id=4 THEN
2533 IF NOT HZ_MATCH_RULE_4.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_4.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: ADDRESS_PERSONS
2542 ELSIF p_rule_id=5 THEN
2543 IF NOT HZ_MATCH_RULE_5.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_5.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: SIMILAR_ORGANIZATION
2552 ELSIF p_rule_id=6 THEN
2553 IF NOT HZ_MATCH_RULE_6.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_6.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: SIMILAR_PERSON
2562 ELSIF p_rule_id=7 THEN
2563 IF NOT HZ_MATCH_RULE_7.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_7.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 SAMPLE: SEARCH
2572 ELSIF p_rule_id=8 THEN
2573 IF NOT HZ_MATCH_RULE_8.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_8.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 RM SEARCH RULE
2582 ELSIF p_rule_id=32 THEN
2583 IF NOT HZ_MATCH_RULE_32.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_32.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 SAMPLE:BASIC SEARCH RULE
2592 ELSIF p_rule_id=33 THEN
2593 IF NOT HZ_MATCH_RULE_33.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_33.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 SAMPLE:ADVANCED SEARCH RULE
2602 ELSIF p_rule_id=34 THEN
2603 IF NOT HZ_MATCH_RULE_34.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_34.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 DL SMART SEARCH
2612 ELSIF p_rule_id=35 THEN
2613 IF NOT HZ_MATCH_RULE_35.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_35.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 DL ADDRESS AND RELATIONSHIP SEARCH
2622 ELSIF p_rule_id=36 THEN
2623 IF NOT HZ_MATCH_RULE_36.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_36.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 DL ADDRESS DEFAULT
2632 ELSIF p_rule_id=37 THEN
2633 IF NOT HZ_MATCH_RULE_37.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_37.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 DL RELATIONSHIP DEFAULT
2642 ELSIF p_rule_id=38 THEN
2643 IF NOT HZ_MATCH_RULE_38.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_38.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 SAMPLE: SEARCH ADDRESS ORGANIZATIONS EXACT
2652 ELSIF p_rule_id=39 THEN
2653 IF NOT HZ_MATCH_RULE_39.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_39.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 SAMPLE: SEARCH SIMILAR ORGANIZATION EXACT
2662 ELSIF p_rule_id=40 THEN
2663 IF NOT HZ_MATCH_RULE_40.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_40.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 SAMPLE: SEARCH SIMILAR PERSON EXACT
2672 ELSIF p_rule_id=41 THEN
2673 IF NOT HZ_MATCH_RULE_41.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_41.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 -- Code for Match rule SAMPLE: SEARCH EXACT
2682 ELSIF p_rule_id=42 THEN
2683 IF NOT HZ_MATCH_RULE_42.check_staged THEN
2684 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2685 FND_MSG_PUB.ADD;
2686 RAISE FND_API.G_EXC_ERROR;
2687 END IF;
2688 HZ_MATCH_RULE_42.find_duplicate_contact_points(
2689 p_rule_id,p_contact_point_id,p_party_id,
2690 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2691 -- Code for Match rule DL SYSTEM DUPLICATE IDENTIFICATION
2692 ELSIF p_rule_id=48 THEN
2693 IF NOT HZ_MATCH_RULE_48.check_staged THEN
2694 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2695 FND_MSG_PUB.ADD;
2696 RAISE FND_API.G_EXC_ERROR;
2697 END IF;
2698 HZ_MATCH_RULE_48.find_duplicate_contact_points(
2699 p_rule_id,p_contact_point_id,p_party_id,
2700 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2701 -- Code for Match rule BULK MATCH: IDENTICAL ORGANIZATIONS
2702 ELSIF p_rule_id=50 THEN
2703 IF NOT HZ_MATCH_RULE_50.check_staged THEN
2704 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2705 FND_MSG_PUB.ADD;
2706 RAISE FND_API.G_EXC_ERROR;
2707 END IF;
2708 HZ_MATCH_RULE_50.find_duplicate_contact_points(
2709 p_rule_id,p_contact_point_id,p_party_id,
2710 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2711 -- Code for Match rule BULK MATCH: IDENTICAL PERSONS
2712 ELSIF p_rule_id=51 THEN
2713 IF NOT HZ_MATCH_RULE_51.check_staged THEN
2714 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2715 FND_MSG_PUB.ADD;
2716 RAISE FND_API.G_EXC_ERROR;
2717 END IF;
2718 HZ_MATCH_RULE_51.find_duplicate_contact_points(
2719 p_rule_id,p_contact_point_id,p_party_id,
2720 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2721 -- Code for Match rule BULK MATCH: IDENTICAL PARTIES
2722 ELSIF p_rule_id=52 THEN
2723 IF NOT HZ_MATCH_RULE_52.check_staged THEN
2724 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2725 FND_MSG_PUB.ADD;
2726 RAISE FND_API.G_EXC_ERROR;
2727 END IF;
2728 HZ_MATCH_RULE_52.find_duplicate_contact_points(
2729 p_rule_id,p_contact_point_id,p_party_id,
2730 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2731 -- Code for Match rule CREDIT MANAGEMENT SEARCH
2732 ELSIF p_rule_id=53 THEN
2733 IF NOT HZ_MATCH_RULE_53.check_staged THEN
2734 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2735 FND_MSG_PUB.ADD;
2736 RAISE FND_API.G_EXC_ERROR;
2737 END IF;
2738 HZ_MATCH_RULE_53.find_duplicate_contact_points(
2739 p_rule_id,p_contact_point_id,p_party_id,
2740 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2741 -- Code for Match rule HZ_PERSON_SIMPLE_SEARCH_RULE
2742 ELSIF p_rule_id=58 THEN
2743 IF NOT HZ_MATCH_RULE_58.check_staged THEN
2744 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2745 FND_MSG_PUB.ADD;
2746 RAISE FND_API.G_EXC_ERROR;
2747 END IF;
2748 HZ_MATCH_RULE_58.find_duplicate_contact_points(
2749 p_rule_id,p_contact_point_id,p_party_id,
2750 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2751 -- Code for Match rule HZ_PERSON_ADVANCED_SEARCH_MATCH_RULE
2752 ELSIF p_rule_id=60 THEN
2753 IF NOT HZ_MATCH_RULE_60.check_staged THEN
2754 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2755 FND_MSG_PUB.ADD;
2756 RAISE FND_API.G_EXC_ERROR;
2757 END IF;
2758 HZ_MATCH_RULE_60.find_duplicate_contact_points(
2759 p_rule_id,p_contact_point_id,p_party_id,
2760 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2761 -- Code for Match rule HZ_ORG_SIMPLE_SEARCH_RULE
2762 ELSIF p_rule_id=61 THEN
2763 IF NOT HZ_MATCH_RULE_61.check_staged THEN
2764 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2765 FND_MSG_PUB.ADD;
2766 RAISE FND_API.G_EXC_ERROR;
2767 END IF;
2768 HZ_MATCH_RULE_61.find_duplicate_contact_points(
2769 p_rule_id,p_contact_point_id,p_party_id,
2770 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2771 -- Code for Match rule HZ_ORG_ADV_SEARCH_RULE
2772 ELSIF p_rule_id=62 THEN
2773 IF NOT HZ_MATCH_RULE_62.check_staged THEN
2774 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2775 FND_MSG_PUB.ADD;
2776 RAISE FND_API.G_EXC_ERROR;
2777 END IF;
2778 HZ_MATCH_RULE_62.find_duplicate_contact_points(
2779 p_rule_id,p_contact_point_id,p_party_id,
2780 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2781 -- Code for Match rule HZ_CONTACT_SIMPLE_SEARCH_RULE
2782 ELSIF p_rule_id=98 THEN
2783 IF NOT HZ_MATCH_RULE_98.check_staged THEN
2784 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2785 FND_MSG_PUB.ADD;
2786 RAISE FND_API.G_EXC_ERROR;
2787 END IF;
2788 HZ_MATCH_RULE_98.find_duplicate_contact_points(
2789 p_rule_id,p_contact_point_id,p_party_id,
2790 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2791 -- Code for Match rule HZ_CONTACT_ADV_SEARCH_MATCH_RULE
2792 ELSIF p_rule_id=99 THEN
2793 IF NOT HZ_MATCH_RULE_99.check_staged THEN
2794 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2795 FND_MSG_PUB.ADD;
2796 RAISE FND_API.G_EXC_ERROR;
2797 END IF;
2798 HZ_MATCH_RULE_99.find_duplicate_contact_points(
2799 p_rule_id,p_contact_point_id,p_party_id,
2800 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2801 -- Code for Match rule Web Services: Identical Organizations
2802 ELSIF p_rule_id=238 THEN
2803 IF NOT HZ_MATCH_RULE_238.check_staged THEN
2804 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2805 FND_MSG_PUB.ADD;
2806 RAISE FND_API.G_EXC_ERROR;
2807 END IF;
2808 HZ_MATCH_RULE_238.find_duplicate_contact_points(
2809 p_rule_id,p_contact_point_id,p_party_id,
2810 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2811 -- Code for Match rule Web Services: Identical Persons
2812 ELSIF p_rule_id=240 THEN
2813 IF NOT HZ_MATCH_RULE_240.check_staged THEN
2814 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2815 FND_MSG_PUB.ADD;
2816 RAISE FND_API.G_EXC_ERROR;
2817 END IF;
2818 HZ_MATCH_RULE_240.find_duplicate_contact_points(
2819 p_rule_id,p_contact_point_id,p_party_id,
2820 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2821 END IF;
2822 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2823 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);
2824 END IF;
2825 --Standard call to get message count and if count is 1, get message info
2826 FND_MSG_PUB.Count_And_Get(
2827 p_encoded => FND_API.G_FALSE,
2828 p_count => x_msg_count,
2829 p_data => x_msg_data);
2830 EXCEPTION
2831 WHEN FND_API.G_EXC_ERROR THEN
2832 x_return_status := FND_API.G_RET_STS_ERROR;
2833 FND_MSG_PUB.Count_And_Get(
2834 p_encoded => FND_API.G_FALSE,
2835 p_count => x_msg_count,
2836 p_data => x_msg_data);
2837 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2838 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2839 FND_MSG_PUB.Count_And_Get(
2840 p_encoded => FND_API.G_FALSE,
2841 p_count => x_msg_count,
2842 p_data => x_msg_data);
2843
2844 WHEN OTHERS THEN
2845 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2846 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_API_ERROR');
2847 FND_MESSAGE.SET_TOKEN('PROC' ,'HZ_PARTY_SEARCH');
2848 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
2849 FND_MSG_PUB.ADD;
2850
2851 FND_MSG_PUB.Count_And_Get(
2852 p_encoded => FND_API.G_FALSE,
2853 p_count => x_msg_count,
2854 p_data => x_msg_data);
2855 END;
2856
2857
2858 PROCEDURE find_parties_dynamic (
2859 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
2860 p_rule_id IN NUMBER,
2861 p_attrib_id1 IN NUMBER,
2862 p_attrib_id2 IN NUMBER,
2863 p_attrib_id3 IN NUMBER,
2864 p_attrib_id4 IN NUMBER,
2865 p_attrib_id5 IN NUMBER,
2866 p_attrib_id6 IN NUMBER,
2867 p_attrib_id7 IN NUMBER,
2868 p_attrib_id8 IN NUMBER,
2869 p_attrib_id9 IN NUMBER,
2870 p_attrib_id10 IN NUMBER,
2871 p_attrib_id11 IN NUMBER,
2872 p_attrib_id12 IN NUMBER,
2873 p_attrib_id13 IN NUMBER,
2874 p_attrib_id14 IN NUMBER,
2875 p_attrib_id15 IN NUMBER,
2876 p_attrib_id16 IN NUMBER,
2877 p_attrib_id17 IN NUMBER,
2878 p_attrib_id18 IN NUMBER,
2879 p_attrib_id19 IN NUMBER,
2880 p_attrib_id20 IN NUMBER,
2881 p_attrib_val1 IN VARCHAR2,
2882 p_attrib_val2 IN VARCHAR2,
2883 p_attrib_val3 IN VARCHAR2,
2884 p_attrib_val4 IN VARCHAR2,
2885 p_attrib_val5 IN VARCHAR2,
2886 p_attrib_val6 IN VARCHAR2,
2887 p_attrib_val7 IN VARCHAR2,
2888 p_attrib_val8 IN VARCHAR2,
2889 p_attrib_val9 IN VARCHAR2,
2890 p_attrib_val10 IN VARCHAR2,
2891 p_attrib_val11 IN VARCHAR2,
2892 p_attrib_val12 IN VARCHAR2,
2893 p_attrib_val13 IN VARCHAR2,
2894 p_attrib_val14 IN VARCHAR2,
2895 p_attrib_val15 IN VARCHAR2,
2896 p_attrib_val16 IN VARCHAR2,
2897 p_attrib_val17 IN VARCHAR2,
2898 p_attrib_val18 IN VARCHAR2,
2899 p_attrib_val19 IN VARCHAR2,
2900 p_attrib_val20 IN VARCHAR2,
2901 p_restrict_sql IN VARCHAR2,
2902 p_match_type IN VARCHAR2,
2903 p_search_merged IN VARCHAR2,
2904 x_search_ctx_id OUT NUMBER,
2905 x_num_matches OUT NUMBER,
2906 x_return_status OUT VARCHAR2,
2907 x_msg_count OUT NUMBER,
2908 x_msg_data OUT VARCHAR2
2909 ) IS
2910 CURSOR c_match_rule IS
2911 SELECT COMPILATION_FLAG
2912 FROM HZ_MATCH_RULES_VL
2913 WHERE MATCH_RULE_ID = p_rule_id;
2914 l_cmp_flag VARCHAR2(1);
2915 BEGIN
2916 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2917 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);
2918 END IF;
2919 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
2920 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);
2921 END IF;
2922
2923 -- Initialize return status and message stack
2924 x_return_status := FND_API.G_RET_STS_SUCCESS;
2925 IF FND_API.to_Boolean(p_init_msg_list) THEN
2926 FND_MSG_PUB.initialize;
2927 END IF;
2928
2929 IF p_rule_id IS NULL OR p_rule_id = 0 THEN
2930 -- Find the match rule
2931 null;
2932
2933 -- No MATCH RULE FOUND
2934 FND_MESSAGE.SET_NAME('AR', 'HZ_NO_MATCH_RULE');
2935 FND_MSG_PUB.ADD;
2936 RAISE FND_API.G_EXC_ERROR;
2937 END IF;
2938 OPEN c_match_rule;
2939 FETCH c_match_rule INTO l_cmp_flag;
2940 IF c_match_rule%NOTFOUND OR l_cmp_flag <> 'C' THEN
2941 FND_MESSAGE.SET_NAME('AR', 'HZ_INVALID_MATCH_RULE');
2942 FND_MSG_PUB.ADD;
2943 RAISE FND_API.G_EXC_ERROR;
2944 END IF;
2945 -- Code for Match rule SAMPLE: ORGANIZATIONS_OPTIMIZED
2946 IF p_rule_id=2 THEN
2947 IF NOT HZ_MATCH_RULE_2.check_staged THEN
2948 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2949 FND_MSG_PUB.ADD;
2950 RAISE FND_API.G_EXC_ERROR;
2951 END IF;
2952 HZ_MATCH_RULE_2.find_parties_dynamic(
2953 p_rule_id,
2954 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
2955 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
2956 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
2957 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
2958 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
2959 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
2960 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
2961 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
2962 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
2963 -- Code for Match rule SAMPLE: PERSON_OPTIMIZED
2964 ELSIF p_rule_id=3 THEN
2965 IF NOT HZ_MATCH_RULE_3.check_staged THEN
2966 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2967 FND_MSG_PUB.ADD;
2968 RAISE FND_API.G_EXC_ERROR;
2969 END IF;
2970 HZ_MATCH_RULE_3.find_parties_dynamic(
2971 p_rule_id,
2972 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
2973 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
2974 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
2975 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
2976 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
2977 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
2978 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
2979 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
2980 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
2981 -- Code for Match rule SAMPLE: ADDRESS_ORGANIZATIONS
2982 ELSIF p_rule_id=4 THEN
2983 IF NOT HZ_MATCH_RULE_4.check_staged THEN
2984 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2985 FND_MSG_PUB.ADD;
2986 RAISE FND_API.G_EXC_ERROR;
2987 END IF;
2988 HZ_MATCH_RULE_4.find_parties_dynamic(
2989 p_rule_id,
2990 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
2991 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
2992 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
2993 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
2994 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
2995 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
2996 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
2997 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
2998 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
2999 -- Code for Match rule SAMPLE: ADDRESS_PERSONS
3000 ELSIF p_rule_id=5 THEN
3001 IF NOT HZ_MATCH_RULE_5.check_staged THEN
3002 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3003 FND_MSG_PUB.ADD;
3004 RAISE FND_API.G_EXC_ERROR;
3005 END IF;
3006 HZ_MATCH_RULE_5.find_parties_dynamic(
3007 p_rule_id,
3008 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3009 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3010 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3011 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3012 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3013 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3014 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3015 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3016 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3017 -- Code for Match rule SAMPLE: SIMILAR_ORGANIZATION
3018 ELSIF p_rule_id=6 THEN
3019 IF NOT HZ_MATCH_RULE_6.check_staged THEN
3020 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3021 FND_MSG_PUB.ADD;
3022 RAISE FND_API.G_EXC_ERROR;
3023 END IF;
3024 HZ_MATCH_RULE_6.find_parties_dynamic(
3025 p_rule_id,
3026 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3027 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3028 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3029 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3030 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3031 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3032 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3033 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3034 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3035 -- Code for Match rule SAMPLE: SIMILAR_PERSON
3036 ELSIF p_rule_id=7 THEN
3037 IF NOT HZ_MATCH_RULE_7.check_staged THEN
3038 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3039 FND_MSG_PUB.ADD;
3040 RAISE FND_API.G_EXC_ERROR;
3041 END IF;
3042 HZ_MATCH_RULE_7.find_parties_dynamic(
3043 p_rule_id,
3044 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3045 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3046 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3047 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3048 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3049 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3050 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3051 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3052 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3053 -- Code for Match rule SAMPLE: SEARCH
3054 ELSIF p_rule_id=8 THEN
3055 IF NOT HZ_MATCH_RULE_8.check_staged THEN
3056 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3057 FND_MSG_PUB.ADD;
3058 RAISE FND_API.G_EXC_ERROR;
3059 END IF;
3060 HZ_MATCH_RULE_8.find_parties_dynamic(
3061 p_rule_id,
3062 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3063 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3064 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3065 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3066 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3067 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3068 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3069 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3070 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3071 -- Code for Match rule RM SEARCH RULE
3072 ELSIF p_rule_id=32 THEN
3073 IF NOT HZ_MATCH_RULE_32.check_staged THEN
3074 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3075 FND_MSG_PUB.ADD;
3076 RAISE FND_API.G_EXC_ERROR;
3077 END IF;
3078 HZ_MATCH_RULE_32.find_parties_dynamic(
3079 p_rule_id,
3080 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3081 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3082 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3083 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3084 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3085 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3086 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3087 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3088 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3089 -- Code for Match rule SAMPLE:BASIC SEARCH RULE
3090 ELSIF p_rule_id=33 THEN
3091 IF NOT HZ_MATCH_RULE_33.check_staged THEN
3092 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3093 FND_MSG_PUB.ADD;
3094 RAISE FND_API.G_EXC_ERROR;
3095 END IF;
3096 HZ_MATCH_RULE_33.find_parties_dynamic(
3097 p_rule_id,
3098 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3099 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3100 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3101 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3102 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3103 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3104 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3105 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3106 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3107 -- Code for Match rule SAMPLE:ADVANCED SEARCH RULE
3108 ELSIF p_rule_id=34 THEN
3109 IF NOT HZ_MATCH_RULE_34.check_staged THEN
3110 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3111 FND_MSG_PUB.ADD;
3112 RAISE FND_API.G_EXC_ERROR;
3113 END IF;
3114 HZ_MATCH_RULE_34.find_parties_dynamic(
3115 p_rule_id,
3116 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3117 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3118 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3119 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3120 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3121 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3122 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3123 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3124 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3125 -- Code for Match rule DL SMART SEARCH
3126 ELSIF p_rule_id=35 THEN
3127 IF NOT HZ_MATCH_RULE_35.check_staged THEN
3128 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3129 FND_MSG_PUB.ADD;
3130 RAISE FND_API.G_EXC_ERROR;
3131 END IF;
3132 HZ_MATCH_RULE_35.find_parties_dynamic(
3133 p_rule_id,
3134 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3135 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3136 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3137 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3138 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3139 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3140 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3141 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3142 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3143 -- Code for Match rule DL ADDRESS AND RELATIONSHIP SEARCH
3144 ELSIF p_rule_id=36 THEN
3145 IF NOT HZ_MATCH_RULE_36.check_staged THEN
3146 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3147 FND_MSG_PUB.ADD;
3148 RAISE FND_API.G_EXC_ERROR;
3149 END IF;
3150 HZ_MATCH_RULE_36.find_parties_dynamic(
3151 p_rule_id,
3152 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3153 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3154 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3155 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3156 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3157 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3158 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3159 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3160 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3161 -- Code for Match rule DL ADDRESS DEFAULT
3162 ELSIF p_rule_id=37 THEN
3163 IF NOT HZ_MATCH_RULE_37.check_staged THEN
3164 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3165 FND_MSG_PUB.ADD;
3166 RAISE FND_API.G_EXC_ERROR;
3167 END IF;
3168 HZ_MATCH_RULE_37.find_parties_dynamic(
3169 p_rule_id,
3170 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3171 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3172 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3173 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3174 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3175 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3176 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3177 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3178 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3179 -- Code for Match rule DL RELATIONSHIP DEFAULT
3180 ELSIF p_rule_id=38 THEN
3181 IF NOT HZ_MATCH_RULE_38.check_staged THEN
3182 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3183 FND_MSG_PUB.ADD;
3184 RAISE FND_API.G_EXC_ERROR;
3185 END IF;
3186 HZ_MATCH_RULE_38.find_parties_dynamic(
3187 p_rule_id,
3188 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3189 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3190 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3191 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3192 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3193 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3194 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3195 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3196 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3197 -- Code for Match rule SAMPLE: SEARCH ADDRESS ORGANIZATIONS EXACT
3198 ELSIF p_rule_id=39 THEN
3199 IF NOT HZ_MATCH_RULE_39.check_staged THEN
3200 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3201 FND_MSG_PUB.ADD;
3202 RAISE FND_API.G_EXC_ERROR;
3203 END IF;
3204 HZ_MATCH_RULE_39.find_parties_dynamic(
3205 p_rule_id,
3206 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3207 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3208 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3209 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3210 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3211 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3212 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3213 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3214 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3215 -- Code for Match rule SAMPLE: SEARCH SIMILAR ORGANIZATION EXACT
3216 ELSIF p_rule_id=40 THEN
3217 IF NOT HZ_MATCH_RULE_40.check_staged THEN
3218 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3219 FND_MSG_PUB.ADD;
3220 RAISE FND_API.G_EXC_ERROR;
3221 END IF;
3222 HZ_MATCH_RULE_40.find_parties_dynamic(
3223 p_rule_id,
3224 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3225 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3226 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3227 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3228 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3229 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3230 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3231 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3232 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3233 -- Code for Match rule SAMPLE: SEARCH SIMILAR PERSON EXACT
3234 ELSIF p_rule_id=41 THEN
3235 IF NOT HZ_MATCH_RULE_41.check_staged THEN
3236 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3237 FND_MSG_PUB.ADD;
3238 RAISE FND_API.G_EXC_ERROR;
3239 END IF;
3240 HZ_MATCH_RULE_41.find_parties_dynamic(
3241 p_rule_id,
3242 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3243 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3244 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3245 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3246 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3247 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3248 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3249 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3250 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3251 -- Code for Match rule SAMPLE: SEARCH EXACT
3252 ELSIF p_rule_id=42 THEN
3253 IF NOT HZ_MATCH_RULE_42.check_staged THEN
3254 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3255 FND_MSG_PUB.ADD;
3256 RAISE FND_API.G_EXC_ERROR;
3257 END IF;
3258 HZ_MATCH_RULE_42.find_parties_dynamic(
3259 p_rule_id,
3260 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3261 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3262 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3263 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3264 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3265 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3266 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3267 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3268 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3269 -- Code for Match rule DL SYSTEM DUPLICATE IDENTIFICATION
3270 ELSIF p_rule_id=48 THEN
3271 IF NOT HZ_MATCH_RULE_48.check_staged THEN
3272 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3273 FND_MSG_PUB.ADD;
3274 RAISE FND_API.G_EXC_ERROR;
3275 END IF;
3276 HZ_MATCH_RULE_48.find_parties_dynamic(
3277 p_rule_id,
3278 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3279 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3280 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3281 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3282 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3283 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3284 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3285 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3286 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3287 -- Code for Match rule BULK MATCH: IDENTICAL ORGANIZATIONS
3288 ELSIF p_rule_id=50 THEN
3289 IF NOT HZ_MATCH_RULE_50.check_staged THEN
3290 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3291 FND_MSG_PUB.ADD;
3292 RAISE FND_API.G_EXC_ERROR;
3293 END IF;
3294 HZ_MATCH_RULE_50.find_parties_dynamic(
3295 p_rule_id,
3296 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3297 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3298 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3299 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3300 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3301 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3302 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3303 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3304 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3305 -- Code for Match rule BULK MATCH: IDENTICAL PERSONS
3306 ELSIF p_rule_id=51 THEN
3307 IF NOT HZ_MATCH_RULE_51.check_staged THEN
3308 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3309 FND_MSG_PUB.ADD;
3310 RAISE FND_API.G_EXC_ERROR;
3311 END IF;
3312 HZ_MATCH_RULE_51.find_parties_dynamic(
3313 p_rule_id,
3314 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3315 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3316 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3317 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3318 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3319 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3320 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3321 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3322 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3323 -- Code for Match rule BULK MATCH: IDENTICAL PARTIES
3324 ELSIF p_rule_id=52 THEN
3325 IF NOT HZ_MATCH_RULE_52.check_staged THEN
3326 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3327 FND_MSG_PUB.ADD;
3328 RAISE FND_API.G_EXC_ERROR;
3329 END IF;
3330 HZ_MATCH_RULE_52.find_parties_dynamic(
3331 p_rule_id,
3332 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3333 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3334 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3335 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3336 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3337 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3338 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3339 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3340 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3341 -- Code for Match rule CREDIT MANAGEMENT SEARCH
3342 ELSIF p_rule_id=53 THEN
3343 IF NOT HZ_MATCH_RULE_53.check_staged THEN
3344 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3345 FND_MSG_PUB.ADD;
3346 RAISE FND_API.G_EXC_ERROR;
3347 END IF;
3348 HZ_MATCH_RULE_53.find_parties_dynamic(
3349 p_rule_id,
3350 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3351 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3352 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3353 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3354 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3355 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3356 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3357 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3358 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3359 -- Code for Match rule HZ_PERSON_SIMPLE_SEARCH_RULE
3360 ELSIF p_rule_id=58 THEN
3361 IF NOT HZ_MATCH_RULE_58.check_staged THEN
3362 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3363 FND_MSG_PUB.ADD;
3364 RAISE FND_API.G_EXC_ERROR;
3365 END IF;
3366 HZ_MATCH_RULE_58.find_parties_dynamic(
3367 p_rule_id,
3368 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3369 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3370 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3371 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3372 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3373 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3374 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3375 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3376 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3377 -- Code for Match rule HZ_PERSON_ADVANCED_SEARCH_MATCH_RULE
3378 ELSIF p_rule_id=60 THEN
3379 IF NOT HZ_MATCH_RULE_60.check_staged THEN
3380 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3381 FND_MSG_PUB.ADD;
3382 RAISE FND_API.G_EXC_ERROR;
3383 END IF;
3384 HZ_MATCH_RULE_60.find_parties_dynamic(
3385 p_rule_id,
3386 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3387 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3388 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3389 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3390 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3391 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3392 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3393 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3394 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3395 -- Code for Match rule HZ_ORG_SIMPLE_SEARCH_RULE
3396 ELSIF p_rule_id=61 THEN
3397 IF NOT HZ_MATCH_RULE_61.check_staged THEN
3398 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3399 FND_MSG_PUB.ADD;
3400 RAISE FND_API.G_EXC_ERROR;
3401 END IF;
3402 HZ_MATCH_RULE_61.find_parties_dynamic(
3403 p_rule_id,
3404 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3405 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3406 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3407 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3408 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3409 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3410 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3411 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3412 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3413 -- Code for Match rule HZ_ORG_ADV_SEARCH_RULE
3414 ELSIF p_rule_id=62 THEN
3415 IF NOT HZ_MATCH_RULE_62.check_staged THEN
3416 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3417 FND_MSG_PUB.ADD;
3418 RAISE FND_API.G_EXC_ERROR;
3419 END IF;
3420 HZ_MATCH_RULE_62.find_parties_dynamic(
3421 p_rule_id,
3422 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3423 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3424 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3425 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3426 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3427 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3428 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3429 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3430 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3431 -- Code for Match rule HZ_CONTACT_SIMPLE_SEARCH_RULE
3432 ELSIF p_rule_id=98 THEN
3433 IF NOT HZ_MATCH_RULE_98.check_staged THEN
3434 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3435 FND_MSG_PUB.ADD;
3436 RAISE FND_API.G_EXC_ERROR;
3437 END IF;
3438 HZ_MATCH_RULE_98.find_parties_dynamic(
3439 p_rule_id,
3440 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3441 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3442 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3443 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3444 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3445 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3446 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3447 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3448 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3449 -- Code for Match rule HZ_CONTACT_ADV_SEARCH_MATCH_RULE
3450 ELSIF p_rule_id=99 THEN
3451 IF NOT HZ_MATCH_RULE_99.check_staged THEN
3452 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3453 FND_MSG_PUB.ADD;
3454 RAISE FND_API.G_EXC_ERROR;
3455 END IF;
3456 HZ_MATCH_RULE_99.find_parties_dynamic(
3457 p_rule_id,
3458 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3459 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3460 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3461 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3462 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3463 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3464 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3465 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3466 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3467 -- Code for Match rule Web Services: Identical Organizations
3468 ELSIF p_rule_id=238 THEN
3469 IF NOT HZ_MATCH_RULE_238.check_staged THEN
3470 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3471 FND_MSG_PUB.ADD;
3472 RAISE FND_API.G_EXC_ERROR;
3473 END IF;
3474 HZ_MATCH_RULE_238.find_parties_dynamic(
3475 p_rule_id,
3476 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3477 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3478 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3479 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3480 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3481 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3482 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3483 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3484 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3485 -- Code for Match rule Web Services: Identical Persons
3486 ELSIF p_rule_id=240 THEN
3487 IF NOT HZ_MATCH_RULE_240.check_staged THEN
3488 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3489 FND_MSG_PUB.ADD;
3490 RAISE FND_API.G_EXC_ERROR;
3491 END IF;
3492 HZ_MATCH_RULE_240.find_parties_dynamic(
3493 p_rule_id,
3494 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3495 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3496 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3497 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3498 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3499 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3500 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3501 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3502 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3503 END IF;
3504 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3505 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);
3506 END IF;
3507 --Standard call to get message count and if count is 1, get message info
3508 FND_MSG_PUB.Count_And_Get(
3509 p_encoded => FND_API.G_FALSE,
3510 p_count => x_msg_count,
3511 p_data => x_msg_data);
3512 EXCEPTION
3513 WHEN FND_API.G_EXC_ERROR THEN
3514 x_return_status := FND_API.G_RET_STS_ERROR;
3515 FND_MSG_PUB.Count_And_Get(
3516 p_encoded => FND_API.G_FALSE,
3517 p_count => x_msg_count,
3518 p_data => x_msg_data);
3519 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3520 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3521 FND_MSG_PUB.Count_And_Get(
3522 p_encoded => FND_API.G_FALSE,
3523 p_count => x_msg_count,
3524 p_data => x_msg_data);
3525
3526 WHEN OTHERS THEN
3527 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3528 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_API_ERROR');
3529 FND_MESSAGE.SET_TOKEN('PROC' ,'HZ_PARTY_SEARCH');
3530 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
3531 FND_MSG_PUB.ADD;
3532
3533 FND_MSG_PUB.Count_And_Get(
3534 p_encoded => FND_API.G_FALSE,
3535 p_count => x_msg_count,
3536 p_data => x_msg_data);
3537 END;
3538
3539 PROCEDURE call_api_dynamic (
3540 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
3541 p_rule_id IN NUMBER,
3542 p_attrib_id1 IN NUMBER,
3543 p_attrib_id2 IN NUMBER,
3544 p_attrib_id3 IN NUMBER,
3545 p_attrib_id4 IN NUMBER,
3546 p_attrib_id5 IN NUMBER,
3547 p_attrib_id6 IN NUMBER,
3548 p_attrib_id7 IN NUMBER,
3549 p_attrib_id8 IN NUMBER,
3550 p_attrib_id9 IN NUMBER,
3551 p_attrib_id10 IN NUMBER,
3552 p_attrib_id11 IN NUMBER,
3553 p_attrib_id12 IN NUMBER,
3554 p_attrib_id13 IN NUMBER,
3555 p_attrib_id14 IN NUMBER,
3556 p_attrib_id15 IN NUMBER,
3557 p_attrib_id16 IN NUMBER,
3558 p_attrib_id17 IN NUMBER,
3559 p_attrib_id18 IN NUMBER,
3560 p_attrib_id19 IN NUMBER,
3561 p_attrib_id20 IN NUMBER,
3562 p_attrib_val1 IN VARCHAR2,
3563 p_attrib_val2 IN VARCHAR2,
3564 p_attrib_val3 IN VARCHAR2,
3565 p_attrib_val4 IN VARCHAR2,
3566 p_attrib_val5 IN VARCHAR2,
3567 p_attrib_val6 IN VARCHAR2,
3568 p_attrib_val7 IN VARCHAR2,
3569 p_attrib_val8 IN VARCHAR2,
3570 p_attrib_val9 IN VARCHAR2,
3571 p_attrib_val10 IN VARCHAR2,
3572 p_attrib_val11 IN VARCHAR2,
3573 p_attrib_val12 IN VARCHAR2,
3574 p_attrib_val13 IN VARCHAR2,
3575 p_attrib_val14 IN VARCHAR2,
3576 p_attrib_val15 IN VARCHAR2,
3577 p_attrib_val16 IN VARCHAR2,
3578 p_attrib_val17 IN VARCHAR2,
3579 p_attrib_val18 IN VARCHAR2,
3580 p_attrib_val19 IN VARCHAR2,
3581 p_attrib_val20 IN VARCHAR2,
3582 p_restrict_sql IN VARCHAR2,
3583 p_api_name IN VARCHAR2,
3584 p_match_type IN VARCHAR2,
3585 p_party_id IN NUMBER,
3586 p_search_merged IN VARCHAR2,
3587 x_search_ctx_id OUT NUMBER,
3588 x_num_matches OUT NUMBER,
3589 x_return_status OUT VARCHAR2,
3590 x_msg_count OUT NUMBER,
3591 x_msg_data OUT VARCHAR2
3592 ) IS
3593 CURSOR c_match_rule IS
3594 SELECT COMPILATION_FLAG
3595 FROM HZ_MATCH_RULES_VL
3596 WHERE MATCH_RULE_ID = p_rule_id;
3597 l_cmp_flag VARCHAR2(1);
3598 BEGIN
3599 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3600 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);
3601 END IF;
3602 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
3603 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);
3604 END IF;
3605
3606 -- Initialize return status and message stack
3607 x_return_status := FND_API.G_RET_STS_SUCCESS;
3608 IF FND_API.to_Boolean(p_init_msg_list) THEN
3609 FND_MSG_PUB.initialize;
3610 END IF;
3611
3612 IF p_rule_id IS NULL OR p_rule_id = 0 THEN
3613 -- Find the match rule
3614 null;
3615
3616 -- No MATCH RULE FOUND
3617 FND_MESSAGE.SET_NAME('AR', 'HZ_NO_MATCH_RULE');
3618 FND_MSG_PUB.ADD;
3619 RAISE FND_API.G_EXC_ERROR;
3620 END IF;
3621 OPEN c_match_rule;
3622 FETCH c_match_rule INTO l_cmp_flag;
3623 IF c_match_rule%NOTFOUND OR l_cmp_flag <> 'C' THEN
3624 FND_MESSAGE.SET_NAME('AR', 'HZ_INVALID_MATCH_RULE');
3625 FND_MSG_PUB.ADD;
3626 RAISE FND_API.G_EXC_ERROR;
3627 END IF;
3628 -- Code for Match rule SAMPLE: ORGANIZATIONS_OPTIMIZED
3629 IF p_rule_id=2 THEN
3630 IF NOT HZ_MATCH_RULE_2.check_staged THEN
3631 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3632 FND_MSG_PUB.ADD;
3633 RAISE FND_API.G_EXC_ERROR;
3634 END IF;
3635 HZ_MATCH_RULE_2.call_api_dynamic(
3636 p_rule_id,
3637 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3638 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3639 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3640 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3641 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3642 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3643 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3644 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3645 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3646 -- Code for Match rule SAMPLE: PERSON_OPTIMIZED
3647 ELSIF p_rule_id=3 THEN
3648 IF NOT HZ_MATCH_RULE_3.check_staged THEN
3649 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3650 FND_MSG_PUB.ADD;
3651 RAISE FND_API.G_EXC_ERROR;
3652 END IF;
3653 HZ_MATCH_RULE_3.call_api_dynamic(
3654 p_rule_id,
3655 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3656 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3657 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3658 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3659 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3660 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3661 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3662 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3663 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3664 -- Code for Match rule SAMPLE: ADDRESS_ORGANIZATIONS
3665 ELSIF p_rule_id=4 THEN
3666 IF NOT HZ_MATCH_RULE_4.check_staged THEN
3667 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3668 FND_MSG_PUB.ADD;
3669 RAISE FND_API.G_EXC_ERROR;
3670 END IF;
3671 HZ_MATCH_RULE_4.call_api_dynamic(
3672 p_rule_id,
3673 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3674 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3675 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3676 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3677 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3678 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3679 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3680 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3681 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3682 -- Code for Match rule SAMPLE: ADDRESS_PERSONS
3683 ELSIF p_rule_id=5 THEN
3684 IF NOT HZ_MATCH_RULE_5.check_staged THEN
3685 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3686 FND_MSG_PUB.ADD;
3687 RAISE FND_API.G_EXC_ERROR;
3688 END IF;
3689 HZ_MATCH_RULE_5.call_api_dynamic(
3690 p_rule_id,
3691 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3692 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3693 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3694 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3695 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3696 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3697 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3698 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3699 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3700 -- Code for Match rule SAMPLE: SIMILAR_ORGANIZATION
3701 ELSIF p_rule_id=6 THEN
3702 IF NOT HZ_MATCH_RULE_6.check_staged THEN
3703 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3704 FND_MSG_PUB.ADD;
3705 RAISE FND_API.G_EXC_ERROR;
3706 END IF;
3707 HZ_MATCH_RULE_6.call_api_dynamic(
3708 p_rule_id,
3709 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3710 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3711 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3712 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3713 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3714 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3715 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3716 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3717 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3718 -- Code for Match rule SAMPLE: SIMILAR_PERSON
3719 ELSIF p_rule_id=7 THEN
3720 IF NOT HZ_MATCH_RULE_7.check_staged THEN
3721 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3722 FND_MSG_PUB.ADD;
3723 RAISE FND_API.G_EXC_ERROR;
3724 END IF;
3725 HZ_MATCH_RULE_7.call_api_dynamic(
3726 p_rule_id,
3727 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3728 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3729 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3730 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3731 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3732 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3733 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3734 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3735 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3736 -- Code for Match rule SAMPLE: SEARCH
3737 ELSIF p_rule_id=8 THEN
3738 IF NOT HZ_MATCH_RULE_8.check_staged THEN
3739 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3740 FND_MSG_PUB.ADD;
3741 RAISE FND_API.G_EXC_ERROR;
3742 END IF;
3743 HZ_MATCH_RULE_8.call_api_dynamic(
3744 p_rule_id,
3745 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3746 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3747 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3748 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3749 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3750 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3751 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3752 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3753 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3754 -- Code for Match rule RM SEARCH RULE
3755 ELSIF p_rule_id=32 THEN
3756 IF NOT HZ_MATCH_RULE_32.check_staged THEN
3757 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3758 FND_MSG_PUB.ADD;
3759 RAISE FND_API.G_EXC_ERROR;
3760 END IF;
3761 HZ_MATCH_RULE_32.call_api_dynamic(
3762 p_rule_id,
3763 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3764 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3765 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3766 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3767 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3768 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3769 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3770 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3771 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3772 -- Code for Match rule SAMPLE:BASIC SEARCH RULE
3773 ELSIF p_rule_id=33 THEN
3774 IF NOT HZ_MATCH_RULE_33.check_staged THEN
3775 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3776 FND_MSG_PUB.ADD;
3777 RAISE FND_API.G_EXC_ERROR;
3778 END IF;
3779 HZ_MATCH_RULE_33.call_api_dynamic(
3780 p_rule_id,
3781 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3782 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3783 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3784 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3785 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3786 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3787 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3788 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3789 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3790 -- Code for Match rule SAMPLE:ADVANCED SEARCH RULE
3791 ELSIF p_rule_id=34 THEN
3792 IF NOT HZ_MATCH_RULE_34.check_staged THEN
3793 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3794 FND_MSG_PUB.ADD;
3795 RAISE FND_API.G_EXC_ERROR;
3796 END IF;
3797 HZ_MATCH_RULE_34.call_api_dynamic(
3798 p_rule_id,
3799 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3800 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3801 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3802 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3803 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3804 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3805 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3806 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3807 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3808 -- Code for Match rule DL SMART SEARCH
3809 ELSIF p_rule_id=35 THEN
3810 IF NOT HZ_MATCH_RULE_35.check_staged THEN
3811 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3812 FND_MSG_PUB.ADD;
3813 RAISE FND_API.G_EXC_ERROR;
3814 END IF;
3815 HZ_MATCH_RULE_35.call_api_dynamic(
3816 p_rule_id,
3817 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3818 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3819 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3820 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3821 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3822 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3823 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3824 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3825 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3826 -- Code for Match rule DL ADDRESS AND RELATIONSHIP SEARCH
3827 ELSIF p_rule_id=36 THEN
3828 IF NOT HZ_MATCH_RULE_36.check_staged THEN
3829 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3830 FND_MSG_PUB.ADD;
3831 RAISE FND_API.G_EXC_ERROR;
3832 END IF;
3833 HZ_MATCH_RULE_36.call_api_dynamic(
3834 p_rule_id,
3835 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3836 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3837 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3838 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3839 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3840 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3841 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3842 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3843 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3844 -- Code for Match rule DL ADDRESS DEFAULT
3845 ELSIF p_rule_id=37 THEN
3846 IF NOT HZ_MATCH_RULE_37.check_staged THEN
3847 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3848 FND_MSG_PUB.ADD;
3849 RAISE FND_API.G_EXC_ERROR;
3850 END IF;
3851 HZ_MATCH_RULE_37.call_api_dynamic(
3852 p_rule_id,
3853 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3854 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3855 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3856 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3857 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3858 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3859 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3860 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3861 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3862 -- Code for Match rule DL RELATIONSHIP DEFAULT
3863 ELSIF p_rule_id=38 THEN
3864 IF NOT HZ_MATCH_RULE_38.check_staged THEN
3865 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3866 FND_MSG_PUB.ADD;
3867 RAISE FND_API.G_EXC_ERROR;
3868 END IF;
3869 HZ_MATCH_RULE_38.call_api_dynamic(
3870 p_rule_id,
3871 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3872 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3873 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3874 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3875 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3876 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3877 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3878 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3879 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3880 -- Code for Match rule SAMPLE: SEARCH ADDRESS ORGANIZATIONS EXACT
3881 ELSIF p_rule_id=39 THEN
3882 IF NOT HZ_MATCH_RULE_39.check_staged THEN
3883 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3884 FND_MSG_PUB.ADD;
3885 RAISE FND_API.G_EXC_ERROR;
3886 END IF;
3887 HZ_MATCH_RULE_39.call_api_dynamic(
3888 p_rule_id,
3889 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3890 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3891 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3892 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3893 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3894 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3895 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3896 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3897 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3898 -- Code for Match rule SAMPLE: SEARCH SIMILAR ORGANIZATION EXACT
3899 ELSIF p_rule_id=40 THEN
3900 IF NOT HZ_MATCH_RULE_40.check_staged THEN
3901 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3902 FND_MSG_PUB.ADD;
3903 RAISE FND_API.G_EXC_ERROR;
3904 END IF;
3905 HZ_MATCH_RULE_40.call_api_dynamic(
3906 p_rule_id,
3907 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3908 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3909 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3910 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3911 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3912 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3913 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3914 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3915 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3916 -- Code for Match rule SAMPLE: SEARCH SIMILAR PERSON EXACT
3917 ELSIF p_rule_id=41 THEN
3918 IF NOT HZ_MATCH_RULE_41.check_staged THEN
3919 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3920 FND_MSG_PUB.ADD;
3921 RAISE FND_API.G_EXC_ERROR;
3922 END IF;
3923 HZ_MATCH_RULE_41.call_api_dynamic(
3924 p_rule_id,
3925 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3926 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3927 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3928 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3929 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3930 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3931 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3932 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3933 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3934 -- Code for Match rule SAMPLE: SEARCH EXACT
3935 ELSIF p_rule_id=42 THEN
3936 IF NOT HZ_MATCH_RULE_42.check_staged THEN
3937 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3938 FND_MSG_PUB.ADD;
3939 RAISE FND_API.G_EXC_ERROR;
3940 END IF;
3941 HZ_MATCH_RULE_42.call_api_dynamic(
3942 p_rule_id,
3943 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3944 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3945 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3946 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3947 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3948 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3949 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3950 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3951 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3952 -- Code for Match rule DL SYSTEM DUPLICATE IDENTIFICATION
3953 ELSIF p_rule_id=48 THEN
3954 IF NOT HZ_MATCH_RULE_48.check_staged THEN
3955 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3956 FND_MSG_PUB.ADD;
3957 RAISE FND_API.G_EXC_ERROR;
3958 END IF;
3959 HZ_MATCH_RULE_48.call_api_dynamic(
3960 p_rule_id,
3961 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3962 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3963 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3964 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3965 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3966 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3967 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3968 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3969 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3970 -- Code for Match rule BULK MATCH: IDENTICAL ORGANIZATIONS
3971 ELSIF p_rule_id=50 THEN
3972 IF NOT HZ_MATCH_RULE_50.check_staged THEN
3973 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3974 FND_MSG_PUB.ADD;
3975 RAISE FND_API.G_EXC_ERROR;
3976 END IF;
3977 HZ_MATCH_RULE_50.call_api_dynamic(
3978 p_rule_id,
3979 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3980 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3981 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3982 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3983 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3984 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3985 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3986 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3987 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3988 -- Code for Match rule BULK MATCH: IDENTICAL PERSONS
3989 ELSIF p_rule_id=51 THEN
3990 IF NOT HZ_MATCH_RULE_51.check_staged THEN
3991 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3992 FND_MSG_PUB.ADD;
3993 RAISE FND_API.G_EXC_ERROR;
3994 END IF;
3995 HZ_MATCH_RULE_51.call_api_dynamic(
3996 p_rule_id,
3997 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3998 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3999 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
4000 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
4001 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
4002 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
4003 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
4004 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
4005 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
4006 -- Code for Match rule BULK MATCH: IDENTICAL PARTIES
4007 ELSIF p_rule_id=52 THEN
4008 IF NOT HZ_MATCH_RULE_52.check_staged THEN
4009 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4010 FND_MSG_PUB.ADD;
4011 RAISE FND_API.G_EXC_ERROR;
4012 END IF;
4013 HZ_MATCH_RULE_52.call_api_dynamic(
4014 p_rule_id,
4015 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
4016 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
4017 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
4018 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
4019 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
4020 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
4021 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
4022 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
4023 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
4024 -- Code for Match rule CREDIT MANAGEMENT SEARCH
4025 ELSIF p_rule_id=53 THEN
4026 IF NOT HZ_MATCH_RULE_53.check_staged THEN
4027 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4028 FND_MSG_PUB.ADD;
4029 RAISE FND_API.G_EXC_ERROR;
4030 END IF;
4031 HZ_MATCH_RULE_53.call_api_dynamic(
4032 p_rule_id,
4033 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
4034 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
4035 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
4036 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
4037 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
4038 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
4039 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
4040 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
4041 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
4042 -- Code for Match rule HZ_PERSON_SIMPLE_SEARCH_RULE
4043 ELSIF p_rule_id=58 THEN
4044 IF NOT HZ_MATCH_RULE_58.check_staged THEN
4045 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4046 FND_MSG_PUB.ADD;
4047 RAISE FND_API.G_EXC_ERROR;
4048 END IF;
4049 HZ_MATCH_RULE_58.call_api_dynamic(
4050 p_rule_id,
4051 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
4052 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
4053 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
4054 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
4055 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
4056 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
4057 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
4058 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
4059 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
4060 -- Code for Match rule HZ_PERSON_ADVANCED_SEARCH_MATCH_RULE
4061 ELSIF p_rule_id=60 THEN
4062 IF NOT HZ_MATCH_RULE_60.check_staged THEN
4063 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4064 FND_MSG_PUB.ADD;
4065 RAISE FND_API.G_EXC_ERROR;
4066 END IF;
4067 HZ_MATCH_RULE_60.call_api_dynamic(
4068 p_rule_id,
4069 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
4070 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
4071 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
4072 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
4073 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
4074 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
4075 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
4076 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
4077 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
4078 -- Code for Match rule HZ_ORG_SIMPLE_SEARCH_RULE
4079 ELSIF p_rule_id=61 THEN
4080 IF NOT HZ_MATCH_RULE_61.check_staged THEN
4081 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4082 FND_MSG_PUB.ADD;
4083 RAISE FND_API.G_EXC_ERROR;
4084 END IF;
4085 HZ_MATCH_RULE_61.call_api_dynamic(
4086 p_rule_id,
4087 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
4088 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
4089 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
4090 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
4091 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
4092 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
4093 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
4094 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
4095 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
4096 -- Code for Match rule HZ_ORG_ADV_SEARCH_RULE
4097 ELSIF p_rule_id=62 THEN
4098 IF NOT HZ_MATCH_RULE_62.check_staged THEN
4099 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4100 FND_MSG_PUB.ADD;
4101 RAISE FND_API.G_EXC_ERROR;
4102 END IF;
4103 HZ_MATCH_RULE_62.call_api_dynamic(
4104 p_rule_id,
4105 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
4106 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
4107 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
4108 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
4109 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
4110 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
4111 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
4112 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
4113 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
4114 -- Code for Match rule HZ_CONTACT_SIMPLE_SEARCH_RULE
4115 ELSIF p_rule_id=98 THEN
4116 IF NOT HZ_MATCH_RULE_98.check_staged THEN
4117 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4118 FND_MSG_PUB.ADD;
4119 RAISE FND_API.G_EXC_ERROR;
4120 END IF;
4121 HZ_MATCH_RULE_98.call_api_dynamic(
4122 p_rule_id,
4123 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
4124 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
4125 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
4126 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
4127 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
4128 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
4129 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
4130 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
4131 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
4132 -- Code for Match rule HZ_CONTACT_ADV_SEARCH_MATCH_RULE
4133 ELSIF p_rule_id=99 THEN
4134 IF NOT HZ_MATCH_RULE_99.check_staged THEN
4135 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4136 FND_MSG_PUB.ADD;
4137 RAISE FND_API.G_EXC_ERROR;
4138 END IF;
4139 HZ_MATCH_RULE_99.call_api_dynamic(
4140 p_rule_id,
4141 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
4142 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
4143 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
4144 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
4145 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
4146 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
4147 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
4148 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
4149 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
4150 -- Code for Match rule Web Services: Identical Organizations
4151 ELSIF p_rule_id=238 THEN
4152 IF NOT HZ_MATCH_RULE_238.check_staged THEN
4153 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4154 FND_MSG_PUB.ADD;
4155 RAISE FND_API.G_EXC_ERROR;
4156 END IF;
4157 HZ_MATCH_RULE_238.call_api_dynamic(
4158 p_rule_id,
4159 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
4160 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
4161 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
4162 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
4163 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
4164 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
4165 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
4166 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
4167 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
4168 -- Code for Match rule Web Services: Identical Persons
4169 ELSIF p_rule_id=240 THEN
4170 IF NOT HZ_MATCH_RULE_240.check_staged THEN
4171 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4172 FND_MSG_PUB.ADD;
4173 RAISE FND_API.G_EXC_ERROR;
4174 END IF;
4175 HZ_MATCH_RULE_240.call_api_dynamic(
4176 p_rule_id,
4177 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
4178 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
4179 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
4180 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
4181 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
4182 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
4183 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
4184 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
4185 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
4186 END IF;
4187 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4188 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);
4189 END IF;
4190 --Standard call to get message count and if count is 1, get message info
4191 FND_MSG_PUB.Count_And_Get(
4192 p_encoded => FND_API.G_FALSE,
4193 p_count => x_msg_count,
4194 p_data => x_msg_data);
4195 EXCEPTION
4196 WHEN FND_API.G_EXC_ERROR THEN
4197 x_return_status := FND_API.G_RET_STS_ERROR;
4198 FND_MSG_PUB.Count_And_Get(
4199 p_encoded => FND_API.G_FALSE,
4200 p_count => x_msg_count,
4201 p_data => x_msg_data);
4202 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4203 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4204 FND_MSG_PUB.Count_And_Get(
4205 p_encoded => FND_API.G_FALSE,
4206 p_count => x_msg_count,
4207 p_data => x_msg_data);
4208
4209 WHEN OTHERS THEN
4210 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4211 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_API_ERROR');
4212 FND_MESSAGE.SET_TOKEN('PROC' ,'HZ_PARTY_SEARCH');
4213 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
4214 FND_MSG_PUB.ADD;
4215
4216 FND_MSG_PUB.Count_And_Get(
4217 p_encoded => FND_API.G_FALSE,
4218 p_count => x_msg_count,
4219 p_data => x_msg_data);
4220 END;
4221
4222 FUNCTION get_attrib_id(p_str VARCHAR2)
4223 RETURN NUMBER IS
4224 l_id NUMBER;
4225 l_pl NUMBER;
4226 l_token VARCHAR2(1);
4227 BEGIN
4228 l_token := '.';
4229 l_pl := instrb(p_str, l_token);
4230 select attribute_id into l_id
4231 from hz_trans_attributes_b
4232 where entity_name = substrb(p_str, 0, l_pl - 1)
4233 and ATTRIBUTE_NAME = substrb(p_str, l_pl + 1);
4234 RETURN l_id;
4235 EXCEPTION WHEN NO_DATA_FOUND THEN
4236 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_NOATTRIB_ERROR' );
4237 FND_MESSAGE.SET_TOKEN('ENTITY_ATTRIBUTE' ,p_str);
4238 FND_MSG_PUB.ADD;
4239 RAISE FND_API.G_EXC_ERROR;
4240 END get_attrib_id;
4241 PROCEDURE call_api_dynamic_names (
4242 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
4243 p_rule_id IN NUMBER,
4244 p_attrib_name1 IN VARCHAR2,
4245 p_attrib_name2 IN VARCHAR2,
4246 p_attrib_name3 IN VARCHAR2,
4247 p_attrib_name4 IN VARCHAR2,
4248 p_attrib_name5 IN VARCHAR2,
4249 p_attrib_name6 IN VARCHAR2,
4250 p_attrib_name7 IN VARCHAR2,
4251 p_attrib_name8 IN VARCHAR2,
4252 p_attrib_name9 IN VARCHAR2,
4253 p_attrib_name10 IN VARCHAR2,
4254 p_attrib_name11 IN VARCHAR2,
4255 p_attrib_name12 IN VARCHAR2,
4256 p_attrib_name13 IN VARCHAR2,
4257 p_attrib_name14 IN VARCHAR2,
4258 p_attrib_name15 IN VARCHAR2,
4259 p_attrib_name16 IN VARCHAR2,
4260 p_attrib_name17 IN VARCHAR2,
4261 p_attrib_name18 IN VARCHAR2,
4262 p_attrib_name19 IN VARCHAR2,
4263 p_attrib_name20 IN VARCHAR2,
4264 p_attrib_val1 IN VARCHAR2,
4265 p_attrib_val2 IN VARCHAR2,
4266 p_attrib_val3 IN VARCHAR2,
4267 p_attrib_val4 IN VARCHAR2,
4268 p_attrib_val5 IN VARCHAR2,
4269 p_attrib_val6 IN VARCHAR2,
4270 p_attrib_val7 IN VARCHAR2,
4271 p_attrib_val8 IN VARCHAR2,
4272 p_attrib_val9 IN VARCHAR2,
4273 p_attrib_val10 IN VARCHAR2,
4274 p_attrib_val11 IN VARCHAR2,
4275 p_attrib_val12 IN VARCHAR2,
4276 p_attrib_val13 IN VARCHAR2,
4277 p_attrib_val14 IN VARCHAR2,
4278 p_attrib_val15 IN VARCHAR2,
4279 p_attrib_val16 IN VARCHAR2,
4280 p_attrib_val17 IN VARCHAR2,
4281 p_attrib_val18 IN VARCHAR2,
4282 p_attrib_val19 IN VARCHAR2,
4283 p_attrib_val20 IN VARCHAR2,
4284 p_restrict_sql IN VARCHAR2,
4285 p_api_name IN VARCHAR2,
4286 p_match_type IN VARCHAR2,
4287 p_party_id IN NUMBER,
4288 p_search_merged IN VARCHAR2,
4289 x_search_ctx_id OUT NUMBER,
4290 x_num_matches OUT NUMBER,
4291 x_return_status OUT VARCHAR2,
4292 x_msg_count OUT NUMBER,
4293 x_msg_data OUT VARCHAR2
4294 ) IS
4295 l_attrib_id1 NUMBER;
4296 l_attrib_id2 NUMBER;
4297 l_attrib_id3 NUMBER;
4298 l_attrib_id4 NUMBER;
4299 l_attrib_id5 NUMBER;
4300 l_attrib_id6 NUMBER;
4301 l_attrib_id7 NUMBER;
4302 l_attrib_id8 NUMBER;
4303 l_attrib_id9 NUMBER;
4304 l_attrib_id10 NUMBER;
4305 l_attrib_id11 NUMBER;
4306 l_attrib_id12 NUMBER;
4307 l_attrib_id13 NUMBER;
4308 l_attrib_id14 NUMBER;
4309 l_attrib_id15 NUMBER;
4310 l_attrib_id16 NUMBER;
4311 l_attrib_id17 NUMBER;
4312 l_attrib_id18 NUMBER;
4313 l_attrib_id19 NUMBER;
4314 l_attrib_id20 NUMBER;
4315 BEGIN
4316 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4317 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);
4318 END IF;
4319 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
4320 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);
4321 END IF;
4322
4323 IF (p_attrib_name1 IS NOT NULL) THEN
4324 l_attrib_id1 := get_attrib_id(p_attrib_name1);
4325 END IF;
4326 IF (p_attrib_name2 IS NOT NULL) THEN
4327 l_attrib_id2 := get_attrib_id(p_attrib_name2);
4328 END IF;
4329 IF (p_attrib_name3 IS NOT NULL) THEN
4330 l_attrib_id3 := get_attrib_id(p_attrib_name3);
4331 END IF;
4332 IF (p_attrib_name4 IS NOT NULL) THEN
4333 l_attrib_id4 := get_attrib_id(p_attrib_name4);
4334 END IF;
4335 IF (p_attrib_name5 IS NOT NULL) THEN
4336 l_attrib_id5 := get_attrib_id(p_attrib_name5);
4337 END IF;
4338 IF (p_attrib_name6 IS NOT NULL) THEN
4339 l_attrib_id6 := get_attrib_id(p_attrib_name6);
4340 END IF;
4341 IF (p_attrib_name7 IS NOT NULL) THEN
4342 l_attrib_id7 := get_attrib_id(p_attrib_name7);
4343 END IF;
4344 IF (p_attrib_name8 IS NOT NULL) THEN
4345 l_attrib_id8 := get_attrib_id(p_attrib_name8);
4346 END IF;
4347 IF (p_attrib_name9 IS NOT NULL) THEN
4348 l_attrib_id9 := get_attrib_id(p_attrib_name9);
4349 END IF;
4350 IF (p_attrib_name10 IS NOT NULL) THEN
4351 l_attrib_id10 := get_attrib_id(p_attrib_name10);
4352 END IF;
4353 IF (p_attrib_name11 IS NOT NULL) THEN
4354 l_attrib_id11 := get_attrib_id(p_attrib_name11);
4355 END IF;
4356 IF (p_attrib_name12 IS NOT NULL) THEN
4357 l_attrib_id12 := get_attrib_id(p_attrib_name12);
4358 END IF;
4359 IF (p_attrib_name13 IS NOT NULL) THEN
4360 l_attrib_id13 := get_attrib_id(p_attrib_name13);
4361 END IF;
4362 IF (p_attrib_name14 IS NOT NULL) THEN
4363 l_attrib_id14 := get_attrib_id(p_attrib_name14);
4364 END IF;
4365 IF (p_attrib_name15 IS NOT NULL) THEN
4366 l_attrib_id15 := get_attrib_id(p_attrib_name15);
4367 END IF;
4368 IF (p_attrib_name16 IS NOT NULL) THEN
4369 l_attrib_id16 := get_attrib_id(p_attrib_name16);
4370 END IF;
4371 IF (p_attrib_name17 IS NOT NULL) THEN
4372 l_attrib_id17 := get_attrib_id(p_attrib_name17);
4373 END IF;
4374 IF (p_attrib_name18 IS NOT NULL) THEN
4375 l_attrib_id18 := get_attrib_id(p_attrib_name18);
4376 END IF;
4377 IF (p_attrib_name19 IS NOT NULL) THEN
4378 l_attrib_id19 := get_attrib_id(p_attrib_name19);
4379 END IF;
4380 IF (p_attrib_name20 IS NOT NULL) THEN
4381 l_attrib_id20 := get_attrib_id(p_attrib_name20);
4382 END IF;
4383 hz_party_search.call_api_dynamic(
4384 p_init_msg_list, p_rule_id,
4385 l_attrib_id1,l_attrib_id2,l_attrib_id3,l_attrib_id4,l_attrib_id5,
4386 l_attrib_id6,l_attrib_id7,l_attrib_id8,l_attrib_id9,l_attrib_id10,
4387 l_attrib_id11,l_attrib_id12,l_attrib_id13,l_attrib_id14,l_attrib_id15,
4388 l_attrib_id16,l_attrib_id17,l_attrib_id18,l_attrib_id19,l_attrib_id20,
4389 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
4390 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
4391 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
4392 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
4393 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,
4394 x_search_ctx_id,x_num_matches, x_return_status, x_msg_count, x_msg_data);
4395 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4396 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);
4397 END IF;
4398 --Standard call to get message count and if count is 1, get message info
4399 FND_MSG_PUB.Count_And_Get(
4400 p_encoded => FND_API.G_FALSE,
4401 p_count => x_msg_count,
4402 p_data => x_msg_data);
4403 EXCEPTION
4404 WHEN FND_API.G_EXC_ERROR THEN
4405 x_return_status := FND_API.G_RET_STS_ERROR;
4406 FND_MSG_PUB.Count_And_Get(
4407 p_encoded => FND_API.G_FALSE,
4408 p_count => x_msg_count,
4409 p_data => x_msg_data);
4410 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4411 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4412 FND_MSG_PUB.Count_And_Get(
4413 p_encoded => FND_API.G_FALSE,
4414 p_count => x_msg_count,
4415 p_data => x_msg_data);
4416
4417 WHEN OTHERS THEN
4418 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4419 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_API_ERROR');
4420 FND_MESSAGE.SET_TOKEN('PROC' ,'HZ_PARTY_SEARCH');
4421 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
4422 FND_MSG_PUB.ADD;
4423
4424 FND_MSG_PUB.Count_And_Get(
4425 p_encoded => FND_API.G_FALSE,
4426 p_count => x_msg_count,
4427 p_data => x_msg_data);
4428 END call_api_dynamic_names;
4429 PROCEDURE get_matching_party_sites (
4430 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
4431 p_rule_id IN NUMBER,
4432 p_party_id IN NUMBER,
4433 p_party_site_list IN PARTY_SITE_LIST,
4434 p_contact_point_list IN CONTACT_POINT_LIST,
4435 x_search_ctx_id OUT NUMBER,
4436 x_return_status OUT VARCHAR2,
4437 x_msg_count OUT NUMBER,
4438 x_msg_data OUT VARCHAR2
4439 ) IS
4440 l_num_matches NUMBER;
4441 BEGIN
4442 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4443 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);
4444 END IF;
4445 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
4446 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);
4447 END IF;
4448 get_matching_party_sites(p_init_msg_list,p_rule_id,p_party_id,
4449 p_party_site_list,p_contact_point_list,
4450 NULL,NULL,x_search_ctx_id,
4451 l_num_matches,x_return_status,x_msg_count,x_msg_data);
4452 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4453 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);
4454 END IF;
4455 END;
4456 PROCEDURE get_matching_party_sites (
4457 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
4458 p_rule_id IN NUMBER,
4459 p_party_id IN NUMBER,
4460 p_party_site_list IN PARTY_SITE_LIST,
4461 p_contact_point_list IN CONTACT_POINT_LIST,
4462 p_restrict_sql IN VARCHAR2,
4463 p_match_type IN VARCHAR2,
4464 x_search_ctx_id OUT NUMBER,
4465 x_num_matches OUT NUMBER,
4466 x_return_status OUT VARCHAR2,
4467 x_msg_count OUT NUMBER,
4468 x_msg_data OUT VARCHAR2
4469 ) IS
4470 CURSOR c_match_rule IS
4471 SELECT COMPILATION_FLAG
4472 FROM HZ_MATCH_RULES_VL
4473 WHERE MATCH_RULE_ID = p_rule_id;
4474 l_cmp_flag VARCHAR2(1);
4475 BEGIN
4476 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4477 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);
4478 END IF;
4479 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
4480 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);
4481 END IF;
4482
4483 -- Initialize return status and message stack
4484 x_return_status := FND_API.G_RET_STS_SUCCESS;
4485 IF FND_API.to_Boolean(p_init_msg_list) THEN
4486 FND_MSG_PUB.initialize;
4487 END IF;
4488
4489 IF p_rule_id IS NULL OR p_rule_id = 0 THEN
4490 -- No MATCH RULE FOUND
4491 FND_MESSAGE.SET_NAME('AR', 'HZ_NO_MATCH_RULE');
4492 FND_MSG_PUB.ADD;
4493 RAISE FND_API.G_EXC_ERROR;
4494 END IF;
4495 OPEN c_match_rule;
4496 FETCH c_match_rule INTO l_cmp_flag;
4497 IF c_match_rule%NOTFOUND OR l_cmp_flag <> 'C' THEN
4498 FND_MESSAGE.SET_NAME('AR', 'HZ_INVALID_MATCH_RULE');
4499 FND_MSG_PUB.ADD;
4500 RAISE FND_API.G_EXC_ERROR;
4501 END IF;
4502 -- Code for Match rule SAMPLE: ORGANIZATIONS_OPTIMIZED
4503 IF p_rule_id=2 THEN
4504 IF NOT HZ_MATCH_RULE_2.check_staged THEN
4505 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4506 FND_MSG_PUB.ADD;
4507 RAISE FND_API.G_EXC_ERROR;
4508 END IF;
4509 HZ_MATCH_RULE_2.get_matching_party_sites(
4510 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4511 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4512 -- Code for Match rule SAMPLE: PERSON_OPTIMIZED
4513 ELSIF p_rule_id=3 THEN
4514 IF NOT HZ_MATCH_RULE_3.check_staged THEN
4515 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4516 FND_MSG_PUB.ADD;
4517 RAISE FND_API.G_EXC_ERROR;
4518 END IF;
4519 HZ_MATCH_RULE_3.get_matching_party_sites(
4520 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4521 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4522 -- Code for Match rule SAMPLE: ADDRESS_ORGANIZATIONS
4523 ELSIF p_rule_id=4 THEN
4524 IF NOT HZ_MATCH_RULE_4.check_staged THEN
4525 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4526 FND_MSG_PUB.ADD;
4527 RAISE FND_API.G_EXC_ERROR;
4528 END IF;
4529 HZ_MATCH_RULE_4.get_matching_party_sites(
4530 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4531 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4532 -- Code for Match rule SAMPLE: ADDRESS_PERSONS
4533 ELSIF p_rule_id=5 THEN
4534 IF NOT HZ_MATCH_RULE_5.check_staged THEN
4535 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4536 FND_MSG_PUB.ADD;
4537 RAISE FND_API.G_EXC_ERROR;
4538 END IF;
4539 HZ_MATCH_RULE_5.get_matching_party_sites(
4540 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4541 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4542 -- Code for Match rule SAMPLE: SIMILAR_ORGANIZATION
4543 ELSIF p_rule_id=6 THEN
4544 IF NOT HZ_MATCH_RULE_6.check_staged THEN
4545 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4546 FND_MSG_PUB.ADD;
4547 RAISE FND_API.G_EXC_ERROR;
4548 END IF;
4549 HZ_MATCH_RULE_6.get_matching_party_sites(
4550 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4551 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4552 -- Code for Match rule SAMPLE: SIMILAR_PERSON
4553 ELSIF p_rule_id=7 THEN
4554 IF NOT HZ_MATCH_RULE_7.check_staged THEN
4555 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4556 FND_MSG_PUB.ADD;
4557 RAISE FND_API.G_EXC_ERROR;
4558 END IF;
4559 HZ_MATCH_RULE_7.get_matching_party_sites(
4560 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4561 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4562 -- Code for Match rule SAMPLE: SEARCH
4563 ELSIF p_rule_id=8 THEN
4564 IF NOT HZ_MATCH_RULE_8.check_staged THEN
4565 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4566 FND_MSG_PUB.ADD;
4567 RAISE FND_API.G_EXC_ERROR;
4568 END IF;
4569 HZ_MATCH_RULE_8.get_matching_party_sites(
4570 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4571 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4572 -- Code for Match rule RM SEARCH RULE
4573 ELSIF p_rule_id=32 THEN
4574 IF NOT HZ_MATCH_RULE_32.check_staged THEN
4575 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4576 FND_MSG_PUB.ADD;
4577 RAISE FND_API.G_EXC_ERROR;
4578 END IF;
4579 HZ_MATCH_RULE_32.get_matching_party_sites(
4580 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4581 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4582 -- Code for Match rule SAMPLE:BASIC SEARCH RULE
4583 ELSIF p_rule_id=33 THEN
4584 IF NOT HZ_MATCH_RULE_33.check_staged THEN
4585 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4586 FND_MSG_PUB.ADD;
4587 RAISE FND_API.G_EXC_ERROR;
4588 END IF;
4589 HZ_MATCH_RULE_33.get_matching_party_sites(
4590 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4591 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4592 -- Code for Match rule SAMPLE:ADVANCED SEARCH RULE
4593 ELSIF p_rule_id=34 THEN
4594 IF NOT HZ_MATCH_RULE_34.check_staged THEN
4595 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4596 FND_MSG_PUB.ADD;
4597 RAISE FND_API.G_EXC_ERROR;
4598 END IF;
4599 HZ_MATCH_RULE_34.get_matching_party_sites(
4600 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4601 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4602 -- Code for Match rule DL SMART SEARCH
4603 ELSIF p_rule_id=35 THEN
4604 IF NOT HZ_MATCH_RULE_35.check_staged THEN
4605 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4606 FND_MSG_PUB.ADD;
4607 RAISE FND_API.G_EXC_ERROR;
4608 END IF;
4609 HZ_MATCH_RULE_35.get_matching_party_sites(
4610 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4611 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4612 -- Code for Match rule DL ADDRESS AND RELATIONSHIP SEARCH
4613 ELSIF p_rule_id=36 THEN
4614 IF NOT HZ_MATCH_RULE_36.check_staged THEN
4615 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4616 FND_MSG_PUB.ADD;
4617 RAISE FND_API.G_EXC_ERROR;
4618 END IF;
4619 HZ_MATCH_RULE_36.get_matching_party_sites(
4620 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4621 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4622 -- Code for Match rule DL ADDRESS DEFAULT
4623 ELSIF p_rule_id=37 THEN
4624 IF NOT HZ_MATCH_RULE_37.check_staged THEN
4625 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4626 FND_MSG_PUB.ADD;
4627 RAISE FND_API.G_EXC_ERROR;
4628 END IF;
4629 HZ_MATCH_RULE_37.get_matching_party_sites(
4630 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4631 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4632 -- Code for Match rule DL RELATIONSHIP DEFAULT
4633 ELSIF p_rule_id=38 THEN
4634 IF NOT HZ_MATCH_RULE_38.check_staged THEN
4635 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4636 FND_MSG_PUB.ADD;
4637 RAISE FND_API.G_EXC_ERROR;
4638 END IF;
4639 HZ_MATCH_RULE_38.get_matching_party_sites(
4640 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4641 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4642 -- Code for Match rule SAMPLE: SEARCH ADDRESS ORGANIZATIONS EXACT
4643 ELSIF p_rule_id=39 THEN
4644 IF NOT HZ_MATCH_RULE_39.check_staged THEN
4645 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4646 FND_MSG_PUB.ADD;
4647 RAISE FND_API.G_EXC_ERROR;
4648 END IF;
4649 HZ_MATCH_RULE_39.get_matching_party_sites(
4650 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4651 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4652 -- Code for Match rule SAMPLE: SEARCH SIMILAR ORGANIZATION EXACT
4653 ELSIF p_rule_id=40 THEN
4654 IF NOT HZ_MATCH_RULE_40.check_staged THEN
4655 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4656 FND_MSG_PUB.ADD;
4657 RAISE FND_API.G_EXC_ERROR;
4658 END IF;
4659 HZ_MATCH_RULE_40.get_matching_party_sites(
4660 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4661 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4662 -- Code for Match rule SAMPLE: SEARCH SIMILAR PERSON EXACT
4663 ELSIF p_rule_id=41 THEN
4664 IF NOT HZ_MATCH_RULE_41.check_staged THEN
4665 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4666 FND_MSG_PUB.ADD;
4667 RAISE FND_API.G_EXC_ERROR;
4668 END IF;
4669 HZ_MATCH_RULE_41.get_matching_party_sites(
4670 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4671 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4672 -- Code for Match rule SAMPLE: SEARCH EXACT
4673 ELSIF p_rule_id=42 THEN
4674 IF NOT HZ_MATCH_RULE_42.check_staged THEN
4675 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4676 FND_MSG_PUB.ADD;
4677 RAISE FND_API.G_EXC_ERROR;
4678 END IF;
4679 HZ_MATCH_RULE_42.get_matching_party_sites(
4680 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4681 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4682 -- Code for Match rule DL SYSTEM DUPLICATE IDENTIFICATION
4683 ELSIF p_rule_id=48 THEN
4684 IF NOT HZ_MATCH_RULE_48.check_staged THEN
4685 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4686 FND_MSG_PUB.ADD;
4687 RAISE FND_API.G_EXC_ERROR;
4688 END IF;
4689 HZ_MATCH_RULE_48.get_matching_party_sites(
4690 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4691 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4692 -- Code for Match rule BULK MATCH: IDENTICAL ORGANIZATIONS
4693 ELSIF p_rule_id=50 THEN
4694 IF NOT HZ_MATCH_RULE_50.check_staged THEN
4695 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4696 FND_MSG_PUB.ADD;
4697 RAISE FND_API.G_EXC_ERROR;
4698 END IF;
4699 HZ_MATCH_RULE_50.get_matching_party_sites(
4700 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4701 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4702 -- Code for Match rule BULK MATCH: IDENTICAL PERSONS
4703 ELSIF p_rule_id=51 THEN
4704 IF NOT HZ_MATCH_RULE_51.check_staged THEN
4705 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4706 FND_MSG_PUB.ADD;
4707 RAISE FND_API.G_EXC_ERROR;
4708 END IF;
4709 HZ_MATCH_RULE_51.get_matching_party_sites(
4710 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4711 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4712 -- Code for Match rule BULK MATCH: IDENTICAL PARTIES
4713 ELSIF p_rule_id=52 THEN
4714 IF NOT HZ_MATCH_RULE_52.check_staged THEN
4715 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4716 FND_MSG_PUB.ADD;
4717 RAISE FND_API.G_EXC_ERROR;
4718 END IF;
4719 HZ_MATCH_RULE_52.get_matching_party_sites(
4720 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4721 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4722 -- Code for Match rule CREDIT MANAGEMENT SEARCH
4723 ELSIF p_rule_id=53 THEN
4724 IF NOT HZ_MATCH_RULE_53.check_staged THEN
4725 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4726 FND_MSG_PUB.ADD;
4727 RAISE FND_API.G_EXC_ERROR;
4728 END IF;
4729 HZ_MATCH_RULE_53.get_matching_party_sites(
4730 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4731 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4732 -- Code for Match rule HZ_PERSON_SIMPLE_SEARCH_RULE
4733 ELSIF p_rule_id=58 THEN
4734 IF NOT HZ_MATCH_RULE_58.check_staged THEN
4735 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4736 FND_MSG_PUB.ADD;
4737 RAISE FND_API.G_EXC_ERROR;
4738 END IF;
4739 HZ_MATCH_RULE_58.get_matching_party_sites(
4740 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4741 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4742 -- Code for Match rule HZ_PERSON_ADVANCED_SEARCH_MATCH_RULE
4743 ELSIF p_rule_id=60 THEN
4744 IF NOT HZ_MATCH_RULE_60.check_staged THEN
4745 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4746 FND_MSG_PUB.ADD;
4747 RAISE FND_API.G_EXC_ERROR;
4748 END IF;
4749 HZ_MATCH_RULE_60.get_matching_party_sites(
4750 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4751 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4752 -- Code for Match rule HZ_ORG_SIMPLE_SEARCH_RULE
4753 ELSIF p_rule_id=61 THEN
4754 IF NOT HZ_MATCH_RULE_61.check_staged THEN
4755 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4756 FND_MSG_PUB.ADD;
4757 RAISE FND_API.G_EXC_ERROR;
4758 END IF;
4759 HZ_MATCH_RULE_61.get_matching_party_sites(
4760 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4761 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4762 -- Code for Match rule HZ_ORG_ADV_SEARCH_RULE
4763 ELSIF p_rule_id=62 THEN
4764 IF NOT HZ_MATCH_RULE_62.check_staged THEN
4765 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4766 FND_MSG_PUB.ADD;
4767 RAISE FND_API.G_EXC_ERROR;
4768 END IF;
4769 HZ_MATCH_RULE_62.get_matching_party_sites(
4770 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4771 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4772 -- Code for Match rule HZ_CONTACT_SIMPLE_SEARCH_RULE
4773 ELSIF p_rule_id=98 THEN
4774 IF NOT HZ_MATCH_RULE_98.check_staged THEN
4775 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4776 FND_MSG_PUB.ADD;
4777 RAISE FND_API.G_EXC_ERROR;
4778 END IF;
4779 HZ_MATCH_RULE_98.get_matching_party_sites(
4780 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4781 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4782 -- Code for Match rule HZ_CONTACT_ADV_SEARCH_MATCH_RULE
4783 ELSIF p_rule_id=99 THEN
4784 IF NOT HZ_MATCH_RULE_99.check_staged THEN
4785 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4786 FND_MSG_PUB.ADD;
4787 RAISE FND_API.G_EXC_ERROR;
4788 END IF;
4789 HZ_MATCH_RULE_99.get_matching_party_sites(
4790 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4791 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4792 -- Code for Match rule Web Services: Identical Organizations
4793 ELSIF p_rule_id=238 THEN
4794 IF NOT HZ_MATCH_RULE_238.check_staged THEN
4795 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4796 FND_MSG_PUB.ADD;
4797 RAISE FND_API.G_EXC_ERROR;
4798 END IF;
4799 HZ_MATCH_RULE_238.get_matching_party_sites(
4800 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4801 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4802 -- Code for Match rule Web Services: Identical Persons
4803 ELSIF p_rule_id=240 THEN
4804 IF NOT HZ_MATCH_RULE_240.check_staged THEN
4805 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4806 FND_MSG_PUB.ADD;
4807 RAISE FND_API.G_EXC_ERROR;
4808 END IF;
4809 HZ_MATCH_RULE_240.get_matching_party_sites(
4810 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4811 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4812 END IF;
4813 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4814 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);
4815 END IF;
4816 --Standard call to get message count and if count is 1, get message info
4817 FND_MSG_PUB.Count_And_Get(
4818 p_encoded => FND_API.G_FALSE,
4819 p_count => x_msg_count,
4820 p_data => x_msg_data);
4821 EXCEPTION
4822 WHEN FND_API.G_EXC_ERROR THEN
4823 x_return_status := FND_API.G_RET_STS_ERROR;
4824 FND_MSG_PUB.Count_And_Get(
4825 p_encoded => FND_API.G_FALSE,
4826 p_count => x_msg_count,
4827 p_data => x_msg_data);
4828 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4829 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4830 FND_MSG_PUB.Count_And_Get(
4831 p_encoded => FND_API.G_FALSE,
4832 p_count => x_msg_count,
4833 p_data => x_msg_data);
4834
4835 WHEN OTHERS THEN
4836 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4837 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_API_ERROR');
4838 FND_MESSAGE.SET_TOKEN('PROC' ,'HZ_PARTY_SEARCH');
4839 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
4840 FND_MSG_PUB.ADD;
4841
4842 FND_MSG_PUB.Count_And_Get(
4843 p_encoded => FND_API.G_FALSE,
4844 p_count => x_msg_count,
4845 p_data => x_msg_data);
4846 END;
4847
4848 PROCEDURE get_matching_contacts (
4849 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
4850 p_rule_id IN NUMBER,
4851 p_party_id IN NUMBER,
4852 p_contact_list IN CONTACT_LIST,
4853 p_contact_point_list IN CONTACT_POINT_LIST,
4854 x_search_ctx_id OUT NUMBER,
4855 x_return_status OUT VARCHAR2,
4856 x_msg_count OUT NUMBER,
4857 x_msg_data OUT VARCHAR2
4858 ) IS
4859 l_num_matches NUMBER;
4860 BEGIN
4861 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4862 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);
4863 END IF;
4864 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
4865 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);
4866 END IF;
4867 get_matching_contacts(p_init_msg_list,p_rule_id,p_party_id,
4868 p_contact_list,p_contact_point_list,
4869 NULL,NULL,x_search_ctx_id,
4870 l_num_matches,x_return_status,x_msg_count,x_msg_data);
4871 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4872 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);
4873 END IF;
4874 END;
4875 PROCEDURE get_matching_contacts (
4876 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
4877 p_rule_id IN NUMBER,
4878 p_party_id IN NUMBER,
4879 p_contact_list IN CONTACT_LIST,
4880 p_contact_point_list IN CONTACT_POINT_LIST,
4881 p_restrict_sql IN VARCHAR2,
4882 p_match_type IN VARCHAR2,
4883 x_search_ctx_id OUT NUMBER,
4884 x_num_matches OUT NUMBER,
4885 x_return_status OUT VARCHAR2,
4886 x_msg_count OUT NUMBER,
4887 x_msg_data OUT VARCHAR2
4888 ) IS
4889 CURSOR c_match_rule IS
4890 SELECT COMPILATION_FLAG
4891 FROM HZ_MATCH_RULES_VL
4892 WHERE MATCH_RULE_ID = p_rule_id;
4893 l_cmp_flag VARCHAR2(1);
4894 BEGIN
4895 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4896 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);
4897 END IF;
4898 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
4899 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);
4900 END IF;
4901
4902 -- Initialize return status and message stack
4903 x_return_status := FND_API.G_RET_STS_SUCCESS;
4904 IF FND_API.to_Boolean(p_init_msg_list) THEN
4905 FND_MSG_PUB.initialize;
4906 END IF;
4907
4908 IF p_rule_id IS NULL OR p_rule_id = 0 THEN
4909 -- No MATCH RULE FOUND
4910 FND_MESSAGE.SET_NAME('AR', 'HZ_NO_MATCH_RULE');
4911 FND_MSG_PUB.ADD;
4912 RAISE FND_API.G_EXC_ERROR;
4913 END IF;
4914 OPEN c_match_rule;
4915 FETCH c_match_rule INTO l_cmp_flag;
4916 IF c_match_rule%NOTFOUND OR l_cmp_flag <> 'C' THEN
4917 FND_MESSAGE.SET_NAME('AR', 'HZ_INVALID_MATCH_RULE');
4918 FND_MSG_PUB.ADD;
4919 RAISE FND_API.G_EXC_ERROR;
4920 END IF;
4921 -- Code for Match rule SAMPLE: ORGANIZATIONS_OPTIMIZED
4922 IF p_rule_id=2 THEN
4923 IF NOT HZ_MATCH_RULE_2.check_staged THEN
4924 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4925 FND_MSG_PUB.ADD;
4926 RAISE FND_API.G_EXC_ERROR;
4927 END IF;
4928 HZ_MATCH_RULE_2.get_matching_contacts(
4929 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4930 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4931 -- Code for Match rule SAMPLE: PERSON_OPTIMIZED
4932 ELSIF p_rule_id=3 THEN
4933 IF NOT HZ_MATCH_RULE_3.check_staged THEN
4934 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4935 FND_MSG_PUB.ADD;
4936 RAISE FND_API.G_EXC_ERROR;
4937 END IF;
4938 HZ_MATCH_RULE_3.get_matching_contacts(
4939 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4940 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4941 -- Code for Match rule SAMPLE: ADDRESS_ORGANIZATIONS
4942 ELSIF p_rule_id=4 THEN
4943 IF NOT HZ_MATCH_RULE_4.check_staged THEN
4944 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4945 FND_MSG_PUB.ADD;
4946 RAISE FND_API.G_EXC_ERROR;
4947 END IF;
4948 HZ_MATCH_RULE_4.get_matching_contacts(
4949 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4950 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4951 -- Code for Match rule SAMPLE: ADDRESS_PERSONS
4952 ELSIF p_rule_id=5 THEN
4953 IF NOT HZ_MATCH_RULE_5.check_staged THEN
4954 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4955 FND_MSG_PUB.ADD;
4956 RAISE FND_API.G_EXC_ERROR;
4957 END IF;
4958 HZ_MATCH_RULE_5.get_matching_contacts(
4959 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4960 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4961 -- Code for Match rule SAMPLE: SIMILAR_ORGANIZATION
4962 ELSIF p_rule_id=6 THEN
4963 IF NOT HZ_MATCH_RULE_6.check_staged THEN
4964 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4965 FND_MSG_PUB.ADD;
4966 RAISE FND_API.G_EXC_ERROR;
4967 END IF;
4968 HZ_MATCH_RULE_6.get_matching_contacts(
4969 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4970 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4971 -- Code for Match rule SAMPLE: SIMILAR_PERSON
4972 ELSIF p_rule_id=7 THEN
4973 IF NOT HZ_MATCH_RULE_7.check_staged THEN
4974 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4975 FND_MSG_PUB.ADD;
4976 RAISE FND_API.G_EXC_ERROR;
4977 END IF;
4978 HZ_MATCH_RULE_7.get_matching_contacts(
4979 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4980 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4981 -- Code for Match rule SAMPLE: SEARCH
4982 ELSIF p_rule_id=8 THEN
4983 IF NOT HZ_MATCH_RULE_8.check_staged THEN
4984 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4985 FND_MSG_PUB.ADD;
4986 RAISE FND_API.G_EXC_ERROR;
4987 END IF;
4988 HZ_MATCH_RULE_8.get_matching_contacts(
4989 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4990 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4991 -- Code for Match rule RM SEARCH RULE
4992 ELSIF p_rule_id=32 THEN
4993 IF NOT HZ_MATCH_RULE_32.check_staged THEN
4994 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4995 FND_MSG_PUB.ADD;
4996 RAISE FND_API.G_EXC_ERROR;
4997 END IF;
4998 HZ_MATCH_RULE_32.get_matching_contacts(
4999 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
5000 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5001 -- Code for Match rule SAMPLE:BASIC SEARCH RULE
5002 ELSIF p_rule_id=33 THEN
5003 IF NOT HZ_MATCH_RULE_33.check_staged THEN
5004 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5005 FND_MSG_PUB.ADD;
5006 RAISE FND_API.G_EXC_ERROR;
5007 END IF;
5008 HZ_MATCH_RULE_33.get_matching_contacts(
5009 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
5010 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5011 -- Code for Match rule SAMPLE:ADVANCED SEARCH RULE
5012 ELSIF p_rule_id=34 THEN
5013 IF NOT HZ_MATCH_RULE_34.check_staged THEN
5014 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5015 FND_MSG_PUB.ADD;
5016 RAISE FND_API.G_EXC_ERROR;
5017 END IF;
5018 HZ_MATCH_RULE_34.get_matching_contacts(
5019 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
5020 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5021 -- Code for Match rule DL SMART SEARCH
5022 ELSIF p_rule_id=35 THEN
5023 IF NOT HZ_MATCH_RULE_35.check_staged THEN
5024 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5025 FND_MSG_PUB.ADD;
5026 RAISE FND_API.G_EXC_ERROR;
5027 END IF;
5028 HZ_MATCH_RULE_35.get_matching_contacts(
5029 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
5030 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5031 -- Code for Match rule DL ADDRESS AND RELATIONSHIP SEARCH
5032 ELSIF p_rule_id=36 THEN
5033 IF NOT HZ_MATCH_RULE_36.check_staged THEN
5034 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5035 FND_MSG_PUB.ADD;
5036 RAISE FND_API.G_EXC_ERROR;
5037 END IF;
5038 HZ_MATCH_RULE_36.get_matching_contacts(
5039 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
5040 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5041 -- Code for Match rule DL ADDRESS DEFAULT
5042 ELSIF p_rule_id=37 THEN
5043 IF NOT HZ_MATCH_RULE_37.check_staged THEN
5044 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5045 FND_MSG_PUB.ADD;
5046 RAISE FND_API.G_EXC_ERROR;
5047 END IF;
5048 HZ_MATCH_RULE_37.get_matching_contacts(
5049 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
5050 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5051 -- Code for Match rule DL RELATIONSHIP DEFAULT
5052 ELSIF p_rule_id=38 THEN
5053 IF NOT HZ_MATCH_RULE_38.check_staged THEN
5054 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5055 FND_MSG_PUB.ADD;
5056 RAISE FND_API.G_EXC_ERROR;
5057 END IF;
5058 HZ_MATCH_RULE_38.get_matching_contacts(
5059 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
5060 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5061 -- Code for Match rule SAMPLE: SEARCH ADDRESS ORGANIZATIONS EXACT
5062 ELSIF p_rule_id=39 THEN
5063 IF NOT HZ_MATCH_RULE_39.check_staged THEN
5064 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5065 FND_MSG_PUB.ADD;
5066 RAISE FND_API.G_EXC_ERROR;
5067 END IF;
5068 HZ_MATCH_RULE_39.get_matching_contacts(
5069 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
5070 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5071 -- Code for Match rule SAMPLE: SEARCH SIMILAR ORGANIZATION EXACT
5072 ELSIF p_rule_id=40 THEN
5073 IF NOT HZ_MATCH_RULE_40.check_staged THEN
5074 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5075 FND_MSG_PUB.ADD;
5076 RAISE FND_API.G_EXC_ERROR;
5077 END IF;
5078 HZ_MATCH_RULE_40.get_matching_contacts(
5079 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
5080 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5081 -- Code for Match rule SAMPLE: SEARCH SIMILAR PERSON EXACT
5082 ELSIF p_rule_id=41 THEN
5083 IF NOT HZ_MATCH_RULE_41.check_staged THEN
5084 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5085 FND_MSG_PUB.ADD;
5086 RAISE FND_API.G_EXC_ERROR;
5087 END IF;
5088 HZ_MATCH_RULE_41.get_matching_contacts(
5089 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
5090 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5091 -- Code for Match rule SAMPLE: SEARCH EXACT
5092 ELSIF p_rule_id=42 THEN
5093 IF NOT HZ_MATCH_RULE_42.check_staged THEN
5094 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5095 FND_MSG_PUB.ADD;
5096 RAISE FND_API.G_EXC_ERROR;
5097 END IF;
5098 HZ_MATCH_RULE_42.get_matching_contacts(
5099 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
5100 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5101 -- Code for Match rule DL SYSTEM DUPLICATE IDENTIFICATION
5102 ELSIF p_rule_id=48 THEN
5103 IF NOT HZ_MATCH_RULE_48.check_staged THEN
5104 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5105 FND_MSG_PUB.ADD;
5106 RAISE FND_API.G_EXC_ERROR;
5107 END IF;
5108 HZ_MATCH_RULE_48.get_matching_contacts(
5109 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
5110 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5111 -- Code for Match rule BULK MATCH: IDENTICAL ORGANIZATIONS
5112 ELSIF p_rule_id=50 THEN
5113 IF NOT HZ_MATCH_RULE_50.check_staged THEN
5114 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5115 FND_MSG_PUB.ADD;
5116 RAISE FND_API.G_EXC_ERROR;
5117 END IF;
5118 HZ_MATCH_RULE_50.get_matching_contacts(
5119 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
5120 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5121 -- Code for Match rule BULK MATCH: IDENTICAL PERSONS
5122 ELSIF p_rule_id=51 THEN
5123 IF NOT HZ_MATCH_RULE_51.check_staged THEN
5124 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5125 FND_MSG_PUB.ADD;
5126 RAISE FND_API.G_EXC_ERROR;
5127 END IF;
5128 HZ_MATCH_RULE_51.get_matching_contacts(
5129 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
5130 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5131 -- Code for Match rule BULK MATCH: IDENTICAL PARTIES
5132 ELSIF p_rule_id=52 THEN
5133 IF NOT HZ_MATCH_RULE_52.check_staged THEN
5134 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5135 FND_MSG_PUB.ADD;
5136 RAISE FND_API.G_EXC_ERROR;
5137 END IF;
5138 HZ_MATCH_RULE_52.get_matching_contacts(
5139 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
5140 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5141 -- Code for Match rule CREDIT MANAGEMENT SEARCH
5142 ELSIF p_rule_id=53 THEN
5143 IF NOT HZ_MATCH_RULE_53.check_staged THEN
5144 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5145 FND_MSG_PUB.ADD;
5146 RAISE FND_API.G_EXC_ERROR;
5147 END IF;
5148 HZ_MATCH_RULE_53.get_matching_contacts(
5149 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
5150 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5151 -- Code for Match rule HZ_PERSON_SIMPLE_SEARCH_RULE
5152 ELSIF p_rule_id=58 THEN
5153 IF NOT HZ_MATCH_RULE_58.check_staged THEN
5154 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5155 FND_MSG_PUB.ADD;
5156 RAISE FND_API.G_EXC_ERROR;
5157 END IF;
5158 HZ_MATCH_RULE_58.get_matching_contacts(
5159 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
5160 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5161 -- Code for Match rule HZ_PERSON_ADVANCED_SEARCH_MATCH_RULE
5162 ELSIF p_rule_id=60 THEN
5163 IF NOT HZ_MATCH_RULE_60.check_staged THEN
5164 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5165 FND_MSG_PUB.ADD;
5166 RAISE FND_API.G_EXC_ERROR;
5167 END IF;
5168 HZ_MATCH_RULE_60.get_matching_contacts(
5169 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
5170 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5171 -- Code for Match rule HZ_ORG_SIMPLE_SEARCH_RULE
5172 ELSIF p_rule_id=61 THEN
5173 IF NOT HZ_MATCH_RULE_61.check_staged THEN
5174 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5175 FND_MSG_PUB.ADD;
5176 RAISE FND_API.G_EXC_ERROR;
5177 END IF;
5178 HZ_MATCH_RULE_61.get_matching_contacts(
5179 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
5180 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5181 -- Code for Match rule HZ_ORG_ADV_SEARCH_RULE
5182 ELSIF p_rule_id=62 THEN
5183 IF NOT HZ_MATCH_RULE_62.check_staged THEN
5184 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5185 FND_MSG_PUB.ADD;
5186 RAISE FND_API.G_EXC_ERROR;
5187 END IF;
5188 HZ_MATCH_RULE_62.get_matching_contacts(
5189 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
5190 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5191 -- Code for Match rule HZ_CONTACT_SIMPLE_SEARCH_RULE
5192 ELSIF p_rule_id=98 THEN
5193 IF NOT HZ_MATCH_RULE_98.check_staged THEN
5194 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5195 FND_MSG_PUB.ADD;
5196 RAISE FND_API.G_EXC_ERROR;
5197 END IF;
5198 HZ_MATCH_RULE_98.get_matching_contacts(
5199 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
5200 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5201 -- Code for Match rule HZ_CONTACT_ADV_SEARCH_MATCH_RULE
5202 ELSIF p_rule_id=99 THEN
5203 IF NOT HZ_MATCH_RULE_99.check_staged THEN
5204 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5205 FND_MSG_PUB.ADD;
5206 RAISE FND_API.G_EXC_ERROR;
5207 END IF;
5208 HZ_MATCH_RULE_99.get_matching_contacts(
5209 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
5210 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5211 -- Code for Match rule Web Services: Identical Organizations
5212 ELSIF p_rule_id=238 THEN
5213 IF NOT HZ_MATCH_RULE_238.check_staged THEN
5214 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5215 FND_MSG_PUB.ADD;
5216 RAISE FND_API.G_EXC_ERROR;
5217 END IF;
5218 HZ_MATCH_RULE_238.get_matching_contacts(
5219 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
5220 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5221 -- Code for Match rule Web Services: Identical Persons
5222 ELSIF p_rule_id=240 THEN
5223 IF NOT HZ_MATCH_RULE_240.check_staged THEN
5224 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5225 FND_MSG_PUB.ADD;
5226 RAISE FND_API.G_EXC_ERROR;
5227 END IF;
5228 HZ_MATCH_RULE_240.get_matching_contacts(
5229 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
5230 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5231 END IF;
5232 --Standard call to get message count and if count is 1, get message info
5233 FND_MSG_PUB.Count_And_Get(
5234 p_encoded => FND_API.G_FALSE,
5235 p_count => x_msg_count,
5236 p_data => x_msg_data);
5237 EXCEPTION
5238 WHEN FND_API.G_EXC_ERROR THEN
5239 x_return_status := FND_API.G_RET_STS_ERROR;
5240 FND_MSG_PUB.Count_And_Get(
5241 p_encoded => FND_API.G_FALSE,
5242 p_count => x_msg_count,
5243 p_data => x_msg_data);
5244 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5245 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5246 FND_MSG_PUB.Count_And_Get(
5247 p_encoded => FND_API.G_FALSE,
5248 p_count => x_msg_count,
5249 p_data => x_msg_data);
5250
5251 WHEN OTHERS THEN
5252 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5253 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_API_ERROR');
5254 FND_MESSAGE.SET_TOKEN('PROC' ,'HZ_PARTY_SEARCH');
5255 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
5256 FND_MSG_PUB.ADD;
5257
5258 FND_MSG_PUB.Count_And_Get(
5259 p_encoded => FND_API.G_FALSE,
5260 p_count => x_msg_count,
5261 p_data => x_msg_data);
5262 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5263 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);
5264 END IF;
5265 END;
5266
5267 PROCEDURE get_matching_contact_points (
5268 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
5269 p_rule_id IN NUMBER,
5270 p_party_id IN NUMBER,
5271 p_contact_point_list IN CONTACT_POINT_LIST,
5272 x_search_ctx_id OUT NUMBER,
5273 x_return_status OUT VARCHAR2,
5274 x_msg_count OUT NUMBER,
5275 x_msg_data OUT VARCHAR2
5276 ) IS
5277 l_num_matches NUMBER;
5278 BEGIN
5279 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5280 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);
5281 END IF;
5282 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
5283 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);
5284 END IF;
5285 get_matching_contact_points(p_init_msg_list,p_rule_id,p_party_id,
5286 p_contact_point_list,
5287 NULL,NULL,x_search_ctx_id,
5288 l_num_matches,x_return_status,x_msg_count,x_msg_data);
5289 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5290 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);
5291 END IF;
5292 END;
5293 PROCEDURE get_matching_contact_points (
5294 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
5295 p_rule_id IN NUMBER,
5296 p_party_id IN NUMBER,
5297 p_contact_point_list IN CONTACT_POINT_LIST,
5298 p_restrict_sql IN VARCHAR2,
5299 p_match_type IN VARCHAR2,
5300 x_search_ctx_id OUT NUMBER,
5301 x_num_matches OUT NUMBER,
5302 x_return_status OUT VARCHAR2,
5303 x_msg_count OUT NUMBER,
5304 x_msg_data OUT VARCHAR2
5305 ) IS
5306 CURSOR c_match_rule IS
5307 SELECT COMPILATION_FLAG
5308 FROM HZ_MATCH_RULES_VL
5309 WHERE MATCH_RULE_ID = p_rule_id;
5310 l_cmp_flag VARCHAR2(1);
5311 BEGIN
5312 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5313 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);
5314 END IF;
5315 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
5316 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);
5317 END IF;
5318
5319 -- Initialize return status and message stack
5320 x_return_status := FND_API.G_RET_STS_SUCCESS;
5321 IF FND_API.to_Boolean(p_init_msg_list) THEN
5322 FND_MSG_PUB.initialize;
5323 END IF;
5324
5325 IF p_rule_id IS NULL OR p_rule_id = 0 THEN
5326 -- No MATCH RULE FOUND
5327 FND_MESSAGE.SET_NAME('AR', 'HZ_NO_MATCH_RULE');
5328 FND_MSG_PUB.ADD;
5329 RAISE FND_API.G_EXC_ERROR;
5330 END IF;
5331 OPEN c_match_rule;
5332 FETCH c_match_rule INTO l_cmp_flag;
5333 IF c_match_rule%NOTFOUND OR l_cmp_flag <> 'C' THEN
5334 FND_MESSAGE.SET_NAME('AR', 'HZ_INVALID_MATCH_RULE');
5335 FND_MSG_PUB.ADD;
5336 RAISE FND_API.G_EXC_ERROR;
5337 END IF;
5338 -- Code for Match rule SAMPLE: ORGANIZATIONS_OPTIMIZED
5339 IF p_rule_id=2 THEN
5340 IF NOT HZ_MATCH_RULE_2.check_staged THEN
5341 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5342 FND_MSG_PUB.ADD;
5343 RAISE FND_API.G_EXC_ERROR;
5344 END IF;
5345 HZ_MATCH_RULE_2.get_matching_contact_points(
5346 p_rule_id, p_party_id, p_contact_point_list,
5347 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5348 -- Code for Match rule SAMPLE: PERSON_OPTIMIZED
5349 ELSIF p_rule_id=3 THEN
5350 IF NOT HZ_MATCH_RULE_3.check_staged THEN
5351 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5352 FND_MSG_PUB.ADD;
5353 RAISE FND_API.G_EXC_ERROR;
5354 END IF;
5355 HZ_MATCH_RULE_3.get_matching_contact_points(
5356 p_rule_id, p_party_id, p_contact_point_list,
5357 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5358 -- Code for Match rule SAMPLE: ADDRESS_ORGANIZATIONS
5359 ELSIF p_rule_id=4 THEN
5360 IF NOT HZ_MATCH_RULE_4.check_staged THEN
5361 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5362 FND_MSG_PUB.ADD;
5363 RAISE FND_API.G_EXC_ERROR;
5364 END IF;
5365 HZ_MATCH_RULE_4.get_matching_contact_points(
5366 p_rule_id, p_party_id, p_contact_point_list,
5367 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5368 -- Code for Match rule SAMPLE: ADDRESS_PERSONS
5369 ELSIF p_rule_id=5 THEN
5370 IF NOT HZ_MATCH_RULE_5.check_staged THEN
5371 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5372 FND_MSG_PUB.ADD;
5373 RAISE FND_API.G_EXC_ERROR;
5374 END IF;
5375 HZ_MATCH_RULE_5.get_matching_contact_points(
5376 p_rule_id, p_party_id, p_contact_point_list,
5377 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5378 -- Code for Match rule SAMPLE: SIMILAR_ORGANIZATION
5379 ELSIF p_rule_id=6 THEN
5380 IF NOT HZ_MATCH_RULE_6.check_staged THEN
5381 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5382 FND_MSG_PUB.ADD;
5383 RAISE FND_API.G_EXC_ERROR;
5384 END IF;
5385 HZ_MATCH_RULE_6.get_matching_contact_points(
5386 p_rule_id, p_party_id, p_contact_point_list,
5387 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5388 -- Code for Match rule SAMPLE: SIMILAR_PERSON
5389 ELSIF p_rule_id=7 THEN
5390 IF NOT HZ_MATCH_RULE_7.check_staged THEN
5391 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5392 FND_MSG_PUB.ADD;
5393 RAISE FND_API.G_EXC_ERROR;
5394 END IF;
5395 HZ_MATCH_RULE_7.get_matching_contact_points(
5396 p_rule_id, p_party_id, p_contact_point_list,
5397 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5398 -- Code for Match rule SAMPLE: SEARCH
5399 ELSIF p_rule_id=8 THEN
5400 IF NOT HZ_MATCH_RULE_8.check_staged THEN
5401 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5402 FND_MSG_PUB.ADD;
5403 RAISE FND_API.G_EXC_ERROR;
5404 END IF;
5405 HZ_MATCH_RULE_8.get_matching_contact_points(
5406 p_rule_id, p_party_id, p_contact_point_list,
5407 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5408 -- Code for Match rule RM SEARCH RULE
5409 ELSIF p_rule_id=32 THEN
5410 IF NOT HZ_MATCH_RULE_32.check_staged THEN
5411 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5412 FND_MSG_PUB.ADD;
5413 RAISE FND_API.G_EXC_ERROR;
5414 END IF;
5415 HZ_MATCH_RULE_32.get_matching_contact_points(
5416 p_rule_id, p_party_id, p_contact_point_list,
5417 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5418 -- Code for Match rule SAMPLE:BASIC SEARCH RULE
5419 ELSIF p_rule_id=33 THEN
5420 IF NOT HZ_MATCH_RULE_33.check_staged THEN
5421 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5422 FND_MSG_PUB.ADD;
5423 RAISE FND_API.G_EXC_ERROR;
5424 END IF;
5425 HZ_MATCH_RULE_33.get_matching_contact_points(
5426 p_rule_id, p_party_id, p_contact_point_list,
5427 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5428 -- Code for Match rule SAMPLE:ADVANCED SEARCH RULE
5429 ELSIF p_rule_id=34 THEN
5430 IF NOT HZ_MATCH_RULE_34.check_staged THEN
5431 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5432 FND_MSG_PUB.ADD;
5433 RAISE FND_API.G_EXC_ERROR;
5434 END IF;
5435 HZ_MATCH_RULE_34.get_matching_contact_points(
5436 p_rule_id, p_party_id, p_contact_point_list,
5437 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5438 -- Code for Match rule DL SMART SEARCH
5439 ELSIF p_rule_id=35 THEN
5440 IF NOT HZ_MATCH_RULE_35.check_staged THEN
5441 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5442 FND_MSG_PUB.ADD;
5443 RAISE FND_API.G_EXC_ERROR;
5444 END IF;
5445 HZ_MATCH_RULE_35.get_matching_contact_points(
5446 p_rule_id, p_party_id, p_contact_point_list,
5447 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5448 -- Code for Match rule DL ADDRESS AND RELATIONSHIP SEARCH
5449 ELSIF p_rule_id=36 THEN
5450 IF NOT HZ_MATCH_RULE_36.check_staged THEN
5451 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5452 FND_MSG_PUB.ADD;
5453 RAISE FND_API.G_EXC_ERROR;
5454 END IF;
5455 HZ_MATCH_RULE_36.get_matching_contact_points(
5456 p_rule_id, p_party_id, p_contact_point_list,
5457 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5458 -- Code for Match rule DL ADDRESS DEFAULT
5459 ELSIF p_rule_id=37 THEN
5460 IF NOT HZ_MATCH_RULE_37.check_staged THEN
5461 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5462 FND_MSG_PUB.ADD;
5463 RAISE FND_API.G_EXC_ERROR;
5464 END IF;
5465 HZ_MATCH_RULE_37.get_matching_contact_points(
5466 p_rule_id, p_party_id, p_contact_point_list,
5467 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5468 -- Code for Match rule DL RELATIONSHIP DEFAULT
5469 ELSIF p_rule_id=38 THEN
5470 IF NOT HZ_MATCH_RULE_38.check_staged THEN
5471 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5472 FND_MSG_PUB.ADD;
5473 RAISE FND_API.G_EXC_ERROR;
5474 END IF;
5475 HZ_MATCH_RULE_38.get_matching_contact_points(
5476 p_rule_id, p_party_id, p_contact_point_list,
5477 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5478 -- Code for Match rule SAMPLE: SEARCH ADDRESS ORGANIZATIONS EXACT
5479 ELSIF p_rule_id=39 THEN
5480 IF NOT HZ_MATCH_RULE_39.check_staged THEN
5481 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5482 FND_MSG_PUB.ADD;
5483 RAISE FND_API.G_EXC_ERROR;
5484 END IF;
5485 HZ_MATCH_RULE_39.get_matching_contact_points(
5486 p_rule_id, p_party_id, p_contact_point_list,
5487 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5488 -- Code for Match rule SAMPLE: SEARCH SIMILAR ORGANIZATION EXACT
5489 ELSIF p_rule_id=40 THEN
5490 IF NOT HZ_MATCH_RULE_40.check_staged THEN
5491 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5492 FND_MSG_PUB.ADD;
5493 RAISE FND_API.G_EXC_ERROR;
5494 END IF;
5495 HZ_MATCH_RULE_40.get_matching_contact_points(
5496 p_rule_id, p_party_id, p_contact_point_list,
5497 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5498 -- Code for Match rule SAMPLE: SEARCH SIMILAR PERSON EXACT
5499 ELSIF p_rule_id=41 THEN
5500 IF NOT HZ_MATCH_RULE_41.check_staged THEN
5501 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5502 FND_MSG_PUB.ADD;
5503 RAISE FND_API.G_EXC_ERROR;
5504 END IF;
5505 HZ_MATCH_RULE_41.get_matching_contact_points(
5506 p_rule_id, p_party_id, p_contact_point_list,
5507 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5508 -- Code for Match rule SAMPLE: SEARCH EXACT
5509 ELSIF p_rule_id=42 THEN
5510 IF NOT HZ_MATCH_RULE_42.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_42.get_matching_contact_points(
5516 p_rule_id, p_party_id, p_contact_point_list,
5517 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5518 -- Code for Match rule DL SYSTEM DUPLICATE IDENTIFICATION
5519 ELSIF p_rule_id=48 THEN
5520 IF NOT HZ_MATCH_RULE_48.check_staged THEN
5521 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5522 FND_MSG_PUB.ADD;
5523 RAISE FND_API.G_EXC_ERROR;
5524 END IF;
5525 HZ_MATCH_RULE_48.get_matching_contact_points(
5526 p_rule_id, p_party_id, p_contact_point_list,
5527 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5528 -- Code for Match rule BULK MATCH: IDENTICAL ORGANIZATIONS
5529 ELSIF p_rule_id=50 THEN
5530 IF NOT HZ_MATCH_RULE_50.check_staged THEN
5531 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5532 FND_MSG_PUB.ADD;
5533 RAISE FND_API.G_EXC_ERROR;
5534 END IF;
5535 HZ_MATCH_RULE_50.get_matching_contact_points(
5536 p_rule_id, p_party_id, p_contact_point_list,
5537 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5538 -- Code for Match rule BULK MATCH: IDENTICAL PERSONS
5539 ELSIF p_rule_id=51 THEN
5540 IF NOT HZ_MATCH_RULE_51.check_staged THEN
5541 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5542 FND_MSG_PUB.ADD;
5543 RAISE FND_API.G_EXC_ERROR;
5544 END IF;
5545 HZ_MATCH_RULE_51.get_matching_contact_points(
5546 p_rule_id, p_party_id, p_contact_point_list,
5547 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5548 -- Code for Match rule BULK MATCH: IDENTICAL PARTIES
5549 ELSIF p_rule_id=52 THEN
5550 IF NOT HZ_MATCH_RULE_52.check_staged THEN
5551 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5552 FND_MSG_PUB.ADD;
5553 RAISE FND_API.G_EXC_ERROR;
5554 END IF;
5555 HZ_MATCH_RULE_52.get_matching_contact_points(
5556 p_rule_id, p_party_id, p_contact_point_list,
5557 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5558 -- Code for Match rule CREDIT MANAGEMENT SEARCH
5559 ELSIF p_rule_id=53 THEN
5560 IF NOT HZ_MATCH_RULE_53.check_staged THEN
5561 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5562 FND_MSG_PUB.ADD;
5563 RAISE FND_API.G_EXC_ERROR;
5564 END IF;
5565 HZ_MATCH_RULE_53.get_matching_contact_points(
5566 p_rule_id, p_party_id, p_contact_point_list,
5567 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5568 -- Code for Match rule HZ_PERSON_SIMPLE_SEARCH_RULE
5569 ELSIF p_rule_id=58 THEN
5570 IF NOT HZ_MATCH_RULE_58.check_staged THEN
5571 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5572 FND_MSG_PUB.ADD;
5573 RAISE FND_API.G_EXC_ERROR;
5574 END IF;
5575 HZ_MATCH_RULE_58.get_matching_contact_points(
5576 p_rule_id, p_party_id, p_contact_point_list,
5577 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5578 -- Code for Match rule HZ_PERSON_ADVANCED_SEARCH_MATCH_RULE
5579 ELSIF p_rule_id=60 THEN
5580 IF NOT HZ_MATCH_RULE_60.check_staged THEN
5581 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5582 FND_MSG_PUB.ADD;
5583 RAISE FND_API.G_EXC_ERROR;
5584 END IF;
5585 HZ_MATCH_RULE_60.get_matching_contact_points(
5586 p_rule_id, p_party_id, p_contact_point_list,
5587 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5588 -- Code for Match rule HZ_ORG_SIMPLE_SEARCH_RULE
5589 ELSIF p_rule_id=61 THEN
5590 IF NOT HZ_MATCH_RULE_61.check_staged THEN
5591 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5592 FND_MSG_PUB.ADD;
5593 RAISE FND_API.G_EXC_ERROR;
5594 END IF;
5595 HZ_MATCH_RULE_61.get_matching_contact_points(
5596 p_rule_id, p_party_id, p_contact_point_list,
5597 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5598 -- Code for Match rule HZ_ORG_ADV_SEARCH_RULE
5599 ELSIF p_rule_id=62 THEN
5600 IF NOT HZ_MATCH_RULE_62.check_staged THEN
5601 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5602 FND_MSG_PUB.ADD;
5603 RAISE FND_API.G_EXC_ERROR;
5604 END IF;
5605 HZ_MATCH_RULE_62.get_matching_contact_points(
5606 p_rule_id, p_party_id, p_contact_point_list,
5607 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5608 -- Code for Match rule HZ_CONTACT_SIMPLE_SEARCH_RULE
5609 ELSIF p_rule_id=98 THEN
5610 IF NOT HZ_MATCH_RULE_98.check_staged THEN
5611 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5612 FND_MSG_PUB.ADD;
5613 RAISE FND_API.G_EXC_ERROR;
5614 END IF;
5615 HZ_MATCH_RULE_98.get_matching_contact_points(
5616 p_rule_id, p_party_id, p_contact_point_list,
5617 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5618 -- Code for Match rule HZ_CONTACT_ADV_SEARCH_MATCH_RULE
5619 ELSIF p_rule_id=99 THEN
5620 IF NOT HZ_MATCH_RULE_99.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_99.get_matching_contact_points(
5626 p_rule_id, p_party_id, p_contact_point_list,
5627 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5628 -- Code for Match rule Web Services: Identical Organizations
5629 ELSIF p_rule_id=238 THEN
5630 IF NOT HZ_MATCH_RULE_238.check_staged THEN
5631 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5632 FND_MSG_PUB.ADD;
5633 RAISE FND_API.G_EXC_ERROR;
5634 END IF;
5635 HZ_MATCH_RULE_238.get_matching_contact_points(
5636 p_rule_id, p_party_id, p_contact_point_list,
5637 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5638 -- Code for Match rule Web Services: Identical Persons
5639 ELSIF p_rule_id=240 THEN
5640 IF NOT HZ_MATCH_RULE_240.check_staged THEN
5641 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5642 FND_MSG_PUB.ADD;
5643 RAISE FND_API.G_EXC_ERROR;
5644 END IF;
5645 HZ_MATCH_RULE_240.get_matching_contact_points(
5646 p_rule_id, p_party_id, p_contact_point_list,
5647 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5648 END IF;
5649 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5650 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);
5651 END IF;
5652 --Standard call to get message count and if count is 1, get message info
5653 FND_MSG_PUB.Count_And_Get(
5654 p_encoded => FND_API.G_FALSE,
5655 p_count => x_msg_count,
5656 p_data => x_msg_data);
5657 EXCEPTION
5658 WHEN FND_API.G_EXC_ERROR THEN
5659 x_return_status := FND_API.G_RET_STS_ERROR;
5660 FND_MSG_PUB.Count_And_Get(
5661 p_encoded => FND_API.G_FALSE,
5662 p_count => x_msg_count,
5663 p_data => x_msg_data);
5664 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5665 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5666 FND_MSG_PUB.Count_And_Get(
5667 p_encoded => FND_API.G_FALSE,
5668 p_count => x_msg_count,
5669 p_data => x_msg_data);
5670
5671 WHEN OTHERS THEN
5672 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5673 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_API_ERROR');
5674 FND_MESSAGE.SET_TOKEN('PROC' ,'HZ_PARTY_SEARCH');
5675 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
5676 FND_MSG_PUB.ADD;
5677
5678 FND_MSG_PUB.Count_And_Get(
5679 p_encoded => FND_API.G_FALSE,
5680 p_count => x_msg_count,
5681 p_data => x_msg_data);
5682 END;
5683
5684 PROCEDURE get_party_score_details (
5685 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
5686 p_rule_id IN NUMBER,
5687 p_party_id IN NUMBER,
5688 p_search_ctx_id IN NUMBER,
5689 p_party_search_rec IN party_search_rec_type,
5690 p_party_site_list IN party_site_list,
5691 p_contact_list IN contact_list,
5692 p_contact_point_list IN contact_point_list,
5693 x_return_status OUT VARCHAR2,
5694 x_msg_count OUT NUMBER,
5695 x_msg_data OUT VARCHAR2
5696 ) IS
5697 l_search_ctx_id NUMBER;
5698 BEGIN
5699 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5700 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);
5701 END IF;
5702 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
5703 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);
5704 END IF;
5705 l_search_ctx_id:=p_search_ctx_id;
5706 get_score_details(p_init_msg_list,p_rule_id,p_party_id,
5707 p_party_search_rec,p_party_site_list,p_contact_list,p_contact_point_list,
5708 l_search_ctx_id,x_return_status,x_msg_count,x_msg_data);
5709 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5710 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);
5711 END IF;
5712 END;
5713 PROCEDURE get_score_details (
5714 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
5715 p_rule_id IN NUMBER,
5716 p_party_id IN NUMBER,
5717 p_party_search_rec IN party_search_rec_type,
5718 p_party_site_list IN party_site_list,
5719 p_contact_list IN contact_list,
5720 p_contact_point_list IN contact_point_list,
5721 x_search_ctx_id IN OUT NUMBER,
5722 x_return_status OUT VARCHAR2,
5723 x_msg_count OUT NUMBER,
5724 x_msg_data OUT VARCHAR2
5725 ) IS
5726 CURSOR c_match_rule IS
5727 SELECT COMPILATION_FLAG
5728 FROM HZ_MATCH_RULES_VL
5729 WHERE MATCH_RULE_ID = p_rule_id;
5730 l_cmp_flag VARCHAR2(1);
5731 BEGIN
5732 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5733 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);
5734 END IF;
5735 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
5736 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);
5737 END IF;
5738
5739 -- Initialize return status and message stack
5740 x_return_status := FND_API.G_RET_STS_SUCCESS;
5741 IF FND_API.to_Boolean(p_init_msg_list) THEN
5742 FND_MSG_PUB.initialize;
5743 END IF;
5744
5745 IF p_rule_id IS NULL OR p_rule_id = 0 THEN
5746 -- No MATCH RULE FOUND
5747 FND_MESSAGE.SET_NAME('AR', 'HZ_NO_MATCH_RULE');
5748 FND_MSG_PUB.ADD;
5749 RAISE FND_API.G_EXC_ERROR;
5750 END IF;
5751 OPEN c_match_rule;
5752 FETCH c_match_rule INTO l_cmp_flag;
5753 IF c_match_rule%NOTFOUND OR l_cmp_flag <> 'C' THEN
5754 FND_MESSAGE.SET_NAME('AR', 'HZ_INVALID_MATCH_RULE');
5755 FND_MSG_PUB.ADD;
5756 RAISE FND_API.G_EXC_ERROR;
5757 END IF;
5758 -- Code for Match rule SAMPLE: ORGANIZATIONS_OPTIMIZED
5759 IF p_rule_id=2 THEN
5760 IF NOT HZ_MATCH_RULE_2.check_staged THEN
5761 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5762 FND_MSG_PUB.ADD;
5763 RAISE FND_API.G_EXC_ERROR;
5764 END IF;
5765 HZ_MATCH_RULE_2.get_score_details(
5766 p_rule_id,
5767 p_party_id, p_party_search_rec,p_party_site_list,
5768 p_contact_list, p_contact_point_list,x_search_ctx_id);
5769 -- Code for Match rule SAMPLE: PERSON_OPTIMIZED
5770 ELSIF p_rule_id=3 THEN
5771 IF NOT HZ_MATCH_RULE_3.check_staged THEN
5772 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5773 FND_MSG_PUB.ADD;
5774 RAISE FND_API.G_EXC_ERROR;
5775 END IF;
5776 HZ_MATCH_RULE_3.get_score_details(
5777 p_rule_id,
5778 p_party_id, p_party_search_rec,p_party_site_list,
5779 p_contact_list, p_contact_point_list,x_search_ctx_id);
5780 -- Code for Match rule SAMPLE: ADDRESS_ORGANIZATIONS
5781 ELSIF p_rule_id=4 THEN
5782 IF NOT HZ_MATCH_RULE_4.check_staged THEN
5783 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5784 FND_MSG_PUB.ADD;
5785 RAISE FND_API.G_EXC_ERROR;
5786 END IF;
5787 HZ_MATCH_RULE_4.get_score_details(
5788 p_rule_id,
5789 p_party_id, p_party_search_rec,p_party_site_list,
5790 p_contact_list, p_contact_point_list,x_search_ctx_id);
5791 -- Code for Match rule SAMPLE: ADDRESS_PERSONS
5792 ELSIF p_rule_id=5 THEN
5793 IF NOT HZ_MATCH_RULE_5.check_staged THEN
5794 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5795 FND_MSG_PUB.ADD;
5796 RAISE FND_API.G_EXC_ERROR;
5797 END IF;
5798 HZ_MATCH_RULE_5.get_score_details(
5799 p_rule_id,
5800 p_party_id, p_party_search_rec,p_party_site_list,
5801 p_contact_list, p_contact_point_list,x_search_ctx_id);
5802 -- Code for Match rule SAMPLE: SIMILAR_ORGANIZATION
5803 ELSIF p_rule_id=6 THEN
5804 IF NOT HZ_MATCH_RULE_6.check_staged THEN
5805 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5806 FND_MSG_PUB.ADD;
5807 RAISE FND_API.G_EXC_ERROR;
5808 END IF;
5809 HZ_MATCH_RULE_6.get_score_details(
5810 p_rule_id,
5811 p_party_id, p_party_search_rec,p_party_site_list,
5812 p_contact_list, p_contact_point_list,x_search_ctx_id);
5813 -- Code for Match rule SAMPLE: SIMILAR_PERSON
5814 ELSIF p_rule_id=7 THEN
5815 IF NOT HZ_MATCH_RULE_7.check_staged THEN
5816 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5817 FND_MSG_PUB.ADD;
5818 RAISE FND_API.G_EXC_ERROR;
5819 END IF;
5820 HZ_MATCH_RULE_7.get_score_details(
5821 p_rule_id,
5822 p_party_id, p_party_search_rec,p_party_site_list,
5823 p_contact_list, p_contact_point_list,x_search_ctx_id);
5824 -- Code for Match rule SAMPLE: SEARCH
5825 ELSIF p_rule_id=8 THEN
5826 IF NOT HZ_MATCH_RULE_8.check_staged THEN
5827 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5828 FND_MSG_PUB.ADD;
5829 RAISE FND_API.G_EXC_ERROR;
5830 END IF;
5831 HZ_MATCH_RULE_8.get_score_details(
5832 p_rule_id,
5833 p_party_id, p_party_search_rec,p_party_site_list,
5834 p_contact_list, p_contact_point_list,x_search_ctx_id);
5835 -- Code for Match rule RM SEARCH RULE
5836 ELSIF p_rule_id=32 THEN
5837 IF NOT HZ_MATCH_RULE_32.check_staged THEN
5838 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5839 FND_MSG_PUB.ADD;
5840 RAISE FND_API.G_EXC_ERROR;
5841 END IF;
5842 HZ_MATCH_RULE_32.get_score_details(
5843 p_rule_id,
5844 p_party_id, p_party_search_rec,p_party_site_list,
5845 p_contact_list, p_contact_point_list,x_search_ctx_id);
5846 -- Code for Match rule SAMPLE:BASIC SEARCH RULE
5847 ELSIF p_rule_id=33 THEN
5848 IF NOT HZ_MATCH_RULE_33.check_staged THEN
5849 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5850 FND_MSG_PUB.ADD;
5851 RAISE FND_API.G_EXC_ERROR;
5852 END IF;
5853 HZ_MATCH_RULE_33.get_score_details(
5854 p_rule_id,
5855 p_party_id, p_party_search_rec,p_party_site_list,
5856 p_contact_list, p_contact_point_list,x_search_ctx_id);
5857 -- Code for Match rule SAMPLE:ADVANCED SEARCH RULE
5858 ELSIF p_rule_id=34 THEN
5859 IF NOT HZ_MATCH_RULE_34.check_staged THEN
5860 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5861 FND_MSG_PUB.ADD;
5862 RAISE FND_API.G_EXC_ERROR;
5863 END IF;
5864 HZ_MATCH_RULE_34.get_score_details(
5865 p_rule_id,
5866 p_party_id, p_party_search_rec,p_party_site_list,
5867 p_contact_list, p_contact_point_list,x_search_ctx_id);
5868 -- Code for Match rule DL SMART SEARCH
5869 ELSIF p_rule_id=35 THEN
5870 IF NOT HZ_MATCH_RULE_35.check_staged THEN
5871 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5872 FND_MSG_PUB.ADD;
5873 RAISE FND_API.G_EXC_ERROR;
5874 END IF;
5875 HZ_MATCH_RULE_35.get_score_details(
5876 p_rule_id,
5877 p_party_id, p_party_search_rec,p_party_site_list,
5878 p_contact_list, p_contact_point_list,x_search_ctx_id);
5879 -- Code for Match rule DL ADDRESS AND RELATIONSHIP SEARCH
5880 ELSIF p_rule_id=36 THEN
5881 IF NOT HZ_MATCH_RULE_36.check_staged THEN
5882 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5883 FND_MSG_PUB.ADD;
5884 RAISE FND_API.G_EXC_ERROR;
5885 END IF;
5886 HZ_MATCH_RULE_36.get_score_details(
5887 p_rule_id,
5888 p_party_id, p_party_search_rec,p_party_site_list,
5889 p_contact_list, p_contact_point_list,x_search_ctx_id);
5890 -- Code for Match rule DL ADDRESS DEFAULT
5891 ELSIF p_rule_id=37 THEN
5892 IF NOT HZ_MATCH_RULE_37.check_staged THEN
5893 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5894 FND_MSG_PUB.ADD;
5895 RAISE FND_API.G_EXC_ERROR;
5896 END IF;
5897 HZ_MATCH_RULE_37.get_score_details(
5898 p_rule_id,
5899 p_party_id, p_party_search_rec,p_party_site_list,
5900 p_contact_list, p_contact_point_list,x_search_ctx_id);
5901 -- Code for Match rule DL RELATIONSHIP DEFAULT
5902 ELSIF p_rule_id=38 THEN
5903 IF NOT HZ_MATCH_RULE_38.check_staged THEN
5904 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5905 FND_MSG_PUB.ADD;
5906 RAISE FND_API.G_EXC_ERROR;
5907 END IF;
5908 HZ_MATCH_RULE_38.get_score_details(
5909 p_rule_id,
5910 p_party_id, p_party_search_rec,p_party_site_list,
5911 p_contact_list, p_contact_point_list,x_search_ctx_id);
5912 -- Code for Match rule SAMPLE: SEARCH ADDRESS ORGANIZATIONS EXACT
5913 ELSIF p_rule_id=39 THEN
5914 IF NOT HZ_MATCH_RULE_39.check_staged THEN
5915 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5916 FND_MSG_PUB.ADD;
5917 RAISE FND_API.G_EXC_ERROR;
5918 END IF;
5919 HZ_MATCH_RULE_39.get_score_details(
5920 p_rule_id,
5921 p_party_id, p_party_search_rec,p_party_site_list,
5922 p_contact_list, p_contact_point_list,x_search_ctx_id);
5923 -- Code for Match rule SAMPLE: SEARCH SIMILAR ORGANIZATION EXACT
5924 ELSIF p_rule_id=40 THEN
5925 IF NOT HZ_MATCH_RULE_40.check_staged THEN
5926 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5927 FND_MSG_PUB.ADD;
5928 RAISE FND_API.G_EXC_ERROR;
5929 END IF;
5930 HZ_MATCH_RULE_40.get_score_details(
5931 p_rule_id,
5932 p_party_id, p_party_search_rec,p_party_site_list,
5933 p_contact_list, p_contact_point_list,x_search_ctx_id);
5934 -- Code for Match rule SAMPLE: SEARCH SIMILAR PERSON EXACT
5935 ELSIF p_rule_id=41 THEN
5936 IF NOT HZ_MATCH_RULE_41.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_41.get_score_details(
5942 p_rule_id,
5943 p_party_id, p_party_search_rec,p_party_site_list,
5944 p_contact_list, p_contact_point_list,x_search_ctx_id);
5945 -- Code for Match rule SAMPLE: SEARCH EXACT
5946 ELSIF p_rule_id=42 THEN
5947 IF NOT HZ_MATCH_RULE_42.check_staged THEN
5948 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5949 FND_MSG_PUB.ADD;
5950 RAISE FND_API.G_EXC_ERROR;
5951 END IF;
5952 HZ_MATCH_RULE_42.get_score_details(
5953 p_rule_id,
5954 p_party_id, p_party_search_rec,p_party_site_list,
5955 p_contact_list, p_contact_point_list,x_search_ctx_id);
5956 -- Code for Match rule DL SYSTEM DUPLICATE IDENTIFICATION
5957 ELSIF p_rule_id=48 THEN
5958 IF NOT HZ_MATCH_RULE_48.check_staged THEN
5959 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5960 FND_MSG_PUB.ADD;
5961 RAISE FND_API.G_EXC_ERROR;
5962 END IF;
5963 HZ_MATCH_RULE_48.get_score_details(
5964 p_rule_id,
5965 p_party_id, p_party_search_rec,p_party_site_list,
5966 p_contact_list, p_contact_point_list,x_search_ctx_id);
5967 -- Code for Match rule BULK MATCH: IDENTICAL ORGANIZATIONS
5968 ELSIF p_rule_id=50 THEN
5969 IF NOT HZ_MATCH_RULE_50.check_staged THEN
5970 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5971 FND_MSG_PUB.ADD;
5972 RAISE FND_API.G_EXC_ERROR;
5973 END IF;
5974 HZ_MATCH_RULE_50.get_score_details(
5975 p_rule_id,
5976 p_party_id, p_party_search_rec,p_party_site_list,
5977 p_contact_list, p_contact_point_list,x_search_ctx_id);
5978 -- Code for Match rule BULK MATCH: IDENTICAL PERSONS
5979 ELSIF p_rule_id=51 THEN
5980 IF NOT HZ_MATCH_RULE_51.check_staged THEN
5981 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5982 FND_MSG_PUB.ADD;
5983 RAISE FND_API.G_EXC_ERROR;
5984 END IF;
5985 HZ_MATCH_RULE_51.get_score_details(
5986 p_rule_id,
5987 p_party_id, p_party_search_rec,p_party_site_list,
5988 p_contact_list, p_contact_point_list,x_search_ctx_id);
5989 -- Code for Match rule BULK MATCH: IDENTICAL PARTIES
5990 ELSIF p_rule_id=52 THEN
5991 IF NOT HZ_MATCH_RULE_52.check_staged THEN
5992 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5993 FND_MSG_PUB.ADD;
5994 RAISE FND_API.G_EXC_ERROR;
5995 END IF;
5996 HZ_MATCH_RULE_52.get_score_details(
5997 p_rule_id,
5998 p_party_id, p_party_search_rec,p_party_site_list,
5999 p_contact_list, p_contact_point_list,x_search_ctx_id);
6000 -- Code for Match rule CREDIT MANAGEMENT SEARCH
6001 ELSIF p_rule_id=53 THEN
6002 IF NOT HZ_MATCH_RULE_53.check_staged THEN
6003 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6004 FND_MSG_PUB.ADD;
6005 RAISE FND_API.G_EXC_ERROR;
6006 END IF;
6007 HZ_MATCH_RULE_53.get_score_details(
6008 p_rule_id,
6009 p_party_id, p_party_search_rec,p_party_site_list,
6010 p_contact_list, p_contact_point_list,x_search_ctx_id);
6011 -- Code for Match rule HZ_PERSON_SIMPLE_SEARCH_RULE
6012 ELSIF p_rule_id=58 THEN
6013 IF NOT HZ_MATCH_RULE_58.check_staged THEN
6014 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6015 FND_MSG_PUB.ADD;
6016 RAISE FND_API.G_EXC_ERROR;
6017 END IF;
6018 HZ_MATCH_RULE_58.get_score_details(
6019 p_rule_id,
6020 p_party_id, p_party_search_rec,p_party_site_list,
6021 p_contact_list, p_contact_point_list,x_search_ctx_id);
6022 -- Code for Match rule HZ_PERSON_ADVANCED_SEARCH_MATCH_RULE
6023 ELSIF p_rule_id=60 THEN
6024 IF NOT HZ_MATCH_RULE_60.check_staged THEN
6025 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6026 FND_MSG_PUB.ADD;
6027 RAISE FND_API.G_EXC_ERROR;
6028 END IF;
6029 HZ_MATCH_RULE_60.get_score_details(
6030 p_rule_id,
6031 p_party_id, p_party_search_rec,p_party_site_list,
6032 p_contact_list, p_contact_point_list,x_search_ctx_id);
6033 -- Code for Match rule HZ_ORG_SIMPLE_SEARCH_RULE
6034 ELSIF p_rule_id=61 THEN
6035 IF NOT HZ_MATCH_RULE_61.check_staged THEN
6036 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6037 FND_MSG_PUB.ADD;
6038 RAISE FND_API.G_EXC_ERROR;
6039 END IF;
6040 HZ_MATCH_RULE_61.get_score_details(
6041 p_rule_id,
6042 p_party_id, p_party_search_rec,p_party_site_list,
6043 p_contact_list, p_contact_point_list,x_search_ctx_id);
6044 -- Code for Match rule HZ_ORG_ADV_SEARCH_RULE
6045 ELSIF p_rule_id=62 THEN
6046 IF NOT HZ_MATCH_RULE_62.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_62.get_score_details(
6052 p_rule_id,
6053 p_party_id, p_party_search_rec,p_party_site_list,
6054 p_contact_list, p_contact_point_list,x_search_ctx_id);
6055 -- Code for Match rule HZ_CONTACT_SIMPLE_SEARCH_RULE
6056 ELSIF p_rule_id=98 THEN
6057 IF NOT HZ_MATCH_RULE_98.check_staged THEN
6058 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6059 FND_MSG_PUB.ADD;
6060 RAISE FND_API.G_EXC_ERROR;
6061 END IF;
6062 HZ_MATCH_RULE_98.get_score_details(
6063 p_rule_id,
6064 p_party_id, p_party_search_rec,p_party_site_list,
6065 p_contact_list, p_contact_point_list,x_search_ctx_id);
6066 -- Code for Match rule HZ_CONTACT_ADV_SEARCH_MATCH_RULE
6067 ELSIF p_rule_id=99 THEN
6068 IF NOT HZ_MATCH_RULE_99.check_staged THEN
6069 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6070 FND_MSG_PUB.ADD;
6071 RAISE FND_API.G_EXC_ERROR;
6072 END IF;
6073 HZ_MATCH_RULE_99.get_score_details(
6074 p_rule_id,
6075 p_party_id, p_party_search_rec,p_party_site_list,
6076 p_contact_list, p_contact_point_list,x_search_ctx_id);
6077 -- Code for Match rule Web Services: Identical Organizations
6078 ELSIF p_rule_id=238 THEN
6079 IF NOT HZ_MATCH_RULE_238.check_staged THEN
6080 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6081 FND_MSG_PUB.ADD;
6082 RAISE FND_API.G_EXC_ERROR;
6083 END IF;
6084 HZ_MATCH_RULE_238.get_score_details(
6085 p_rule_id,
6086 p_party_id, p_party_search_rec,p_party_site_list,
6087 p_contact_list, p_contact_point_list,x_search_ctx_id);
6088 -- Code for Match rule Web Services: Identical Persons
6089 ELSIF p_rule_id=240 THEN
6090 IF NOT HZ_MATCH_RULE_240.check_staged THEN
6091 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6092 FND_MSG_PUB.ADD;
6093 RAISE FND_API.G_EXC_ERROR;
6094 END IF;
6095 HZ_MATCH_RULE_240.get_score_details(
6096 p_rule_id,
6097 p_party_id, p_party_search_rec,p_party_site_list,
6098 p_contact_list, p_contact_point_list,x_search_ctx_id);
6099 END IF;
6100 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
6101 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);
6102 END IF;
6103 --Standard call to get message count and if count is 1, get message info
6104 FND_MSG_PUB.Count_And_Get(
6105 p_encoded => FND_API.G_FALSE,
6106 p_count => x_msg_count,
6107 p_data => x_msg_data);
6108 EXCEPTION
6109 WHEN FND_API.G_EXC_ERROR THEN
6110 x_return_status := FND_API.G_RET_STS_ERROR;
6111 FND_MSG_PUB.Count_And_Get(
6112 p_encoded => FND_API.G_FALSE,
6113 p_count => x_msg_count,
6114 p_data => x_msg_data);
6115 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6116 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6117 FND_MSG_PUB.Count_And_Get(
6118 p_encoded => FND_API.G_FALSE,
6119 p_count => x_msg_count,
6120 p_data => x_msg_data);
6121
6122 WHEN OTHERS THEN
6123 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6124 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_API_ERROR');
6125 FND_MESSAGE.SET_TOKEN('PROC' ,'HZ_PARTY_SEARCH');
6126 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
6127 FND_MSG_PUB.ADD;
6128
6129 FND_MSG_PUB.Count_And_Get(
6130 p_encoded => FND_API.G_FALSE,
6131 p_count => x_msg_count,
6132 p_data => x_msg_data);
6133 END;
6134 PROCEDURE get_party_for_search (
6135 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
6136 p_rule_id IN NUMBER,
6137 p_party_id IN NUMBER,
6138 x_party_search_rec OUT NOCOPY party_search_rec_type,
6139 x_party_site_list OUT NOCOPY party_site_list,
6140 x_contact_list OUT NOCOPY contact_list,
6141 x_contact_point_list OUT NOCOPY contact_point_list,
6142 x_return_status OUT VARCHAR2,
6143 x_msg_count OUT NUMBER,
6144 x_msg_data OUT VARCHAR2
6145 ) IS
6146 CURSOR c_match_rule IS
6147 SELECT COMPILATION_FLAG
6148 FROM HZ_MATCH_RULES_VL
6149 WHERE MATCH_RULE_ID = p_rule_id;
6150 l_cmp_flag VARCHAR2(1);
6151 BEGIN
6152 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
6153 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);
6154 END IF;
6155 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
6156 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);
6157 END IF;
6158
6159 -- Initialize return status and message stack
6160 x_return_status := FND_API.G_RET_STS_SUCCESS;
6161 IF FND_API.to_Boolean(p_init_msg_list) THEN
6162 FND_MSG_PUB.initialize;
6163 END IF;
6164
6165 IF p_rule_id IS NULL OR p_rule_id = 0 THEN
6166 -- No MATCH RULE FOUND
6167 FND_MESSAGE.SET_NAME('AR', 'HZ_NO_MATCH_RULE');
6168 FND_MSG_PUB.ADD;
6169 RAISE FND_API.G_EXC_ERROR;
6170 END IF;
6171 OPEN c_match_rule;
6172 FETCH c_match_rule INTO l_cmp_flag;
6173 IF c_match_rule%NOTFOUND OR l_cmp_flag <> 'C' THEN
6174 FND_MESSAGE.SET_NAME('AR', 'HZ_INVALID_MATCH_RULE');
6175 FND_MSG_PUB.ADD;
6176 RAISE FND_API.G_EXC_ERROR;
6177 END IF;
6178 -- Code for Match rule SAMPLE: ORGANIZATIONS_OPTIMIZED
6179 IF p_rule_id=2 THEN
6180 IF NOT HZ_MATCH_RULE_2.check_staged THEN
6181 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6182 FND_MSG_PUB.ADD;
6183 RAISE FND_API.G_EXC_ERROR;
6184 END IF;
6185 HZ_MATCH_RULE_2.get_party_for_search(
6186 p_party_id, x_party_search_rec,x_party_site_list,
6187 x_contact_list, x_contact_point_list);
6188 -- Code for Match rule SAMPLE: PERSON_OPTIMIZED
6189 ELSIF p_rule_id=3 THEN
6190 IF NOT HZ_MATCH_RULE_3.check_staged THEN
6191 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6192 FND_MSG_PUB.ADD;
6193 RAISE FND_API.G_EXC_ERROR;
6194 END IF;
6195 HZ_MATCH_RULE_3.get_party_for_search(
6196 p_party_id, x_party_search_rec,x_party_site_list,
6197 x_contact_list, x_contact_point_list);
6198 -- Code for Match rule SAMPLE: ADDRESS_ORGANIZATIONS
6199 ELSIF p_rule_id=4 THEN
6200 IF NOT HZ_MATCH_RULE_4.check_staged THEN
6201 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6202 FND_MSG_PUB.ADD;
6203 RAISE FND_API.G_EXC_ERROR;
6204 END IF;
6205 HZ_MATCH_RULE_4.get_party_for_search(
6206 p_party_id, x_party_search_rec,x_party_site_list,
6207 x_contact_list, x_contact_point_list);
6208 -- Code for Match rule SAMPLE: ADDRESS_PERSONS
6209 ELSIF p_rule_id=5 THEN
6210 IF NOT HZ_MATCH_RULE_5.check_staged THEN
6211 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6212 FND_MSG_PUB.ADD;
6213 RAISE FND_API.G_EXC_ERROR;
6214 END IF;
6215 HZ_MATCH_RULE_5.get_party_for_search(
6216 p_party_id, x_party_search_rec,x_party_site_list,
6217 x_contact_list, x_contact_point_list);
6218 -- Code for Match rule SAMPLE: SIMILAR_ORGANIZATION
6219 ELSIF p_rule_id=6 THEN
6220 IF NOT HZ_MATCH_RULE_6.check_staged THEN
6221 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6222 FND_MSG_PUB.ADD;
6223 RAISE FND_API.G_EXC_ERROR;
6224 END IF;
6225 HZ_MATCH_RULE_6.get_party_for_search(
6226 p_party_id, x_party_search_rec,x_party_site_list,
6227 x_contact_list, x_contact_point_list);
6228 -- Code for Match rule SAMPLE: SIMILAR_PERSON
6229 ELSIF p_rule_id=7 THEN
6230 IF NOT HZ_MATCH_RULE_7.check_staged THEN
6231 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6232 FND_MSG_PUB.ADD;
6233 RAISE FND_API.G_EXC_ERROR;
6234 END IF;
6235 HZ_MATCH_RULE_7.get_party_for_search(
6236 p_party_id, x_party_search_rec,x_party_site_list,
6237 x_contact_list, x_contact_point_list);
6238 -- Code for Match rule SAMPLE: SEARCH
6239 ELSIF p_rule_id=8 THEN
6240 IF NOT HZ_MATCH_RULE_8.check_staged THEN
6241 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6242 FND_MSG_PUB.ADD;
6243 RAISE FND_API.G_EXC_ERROR;
6244 END IF;
6245 HZ_MATCH_RULE_8.get_party_for_search(
6246 p_party_id, x_party_search_rec,x_party_site_list,
6247 x_contact_list, x_contact_point_list);
6248 -- Code for Match rule RM SEARCH RULE
6249 ELSIF p_rule_id=32 THEN
6250 IF NOT HZ_MATCH_RULE_32.check_staged THEN
6251 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6252 FND_MSG_PUB.ADD;
6253 RAISE FND_API.G_EXC_ERROR;
6254 END IF;
6255 HZ_MATCH_RULE_32.get_party_for_search(
6256 p_party_id, x_party_search_rec,x_party_site_list,
6257 x_contact_list, x_contact_point_list);
6258 -- Code for Match rule SAMPLE:BASIC SEARCH RULE
6259 ELSIF p_rule_id=33 THEN
6260 IF NOT HZ_MATCH_RULE_33.check_staged THEN
6261 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6262 FND_MSG_PUB.ADD;
6263 RAISE FND_API.G_EXC_ERROR;
6264 END IF;
6265 HZ_MATCH_RULE_33.get_party_for_search(
6266 p_party_id, x_party_search_rec,x_party_site_list,
6267 x_contact_list, x_contact_point_list);
6268 -- Code for Match rule SAMPLE:ADVANCED SEARCH RULE
6269 ELSIF p_rule_id=34 THEN
6270 IF NOT HZ_MATCH_RULE_34.check_staged THEN
6271 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6272 FND_MSG_PUB.ADD;
6273 RAISE FND_API.G_EXC_ERROR;
6274 END IF;
6275 HZ_MATCH_RULE_34.get_party_for_search(
6276 p_party_id, x_party_search_rec,x_party_site_list,
6277 x_contact_list, x_contact_point_list);
6278 -- Code for Match rule DL SMART SEARCH
6279 ELSIF p_rule_id=35 THEN
6280 IF NOT HZ_MATCH_RULE_35.check_staged THEN
6281 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6282 FND_MSG_PUB.ADD;
6283 RAISE FND_API.G_EXC_ERROR;
6284 END IF;
6285 HZ_MATCH_RULE_35.get_party_for_search(
6286 p_party_id, x_party_search_rec,x_party_site_list,
6287 x_contact_list, x_contact_point_list);
6288 -- Code for Match rule DL ADDRESS AND RELATIONSHIP SEARCH
6289 ELSIF p_rule_id=36 THEN
6290 IF NOT HZ_MATCH_RULE_36.check_staged THEN
6291 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6292 FND_MSG_PUB.ADD;
6293 RAISE FND_API.G_EXC_ERROR;
6294 END IF;
6295 HZ_MATCH_RULE_36.get_party_for_search(
6296 p_party_id, x_party_search_rec,x_party_site_list,
6297 x_contact_list, x_contact_point_list);
6298 -- Code for Match rule DL ADDRESS DEFAULT
6299 ELSIF p_rule_id=37 THEN
6300 IF NOT HZ_MATCH_RULE_37.check_staged THEN
6301 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6302 FND_MSG_PUB.ADD;
6303 RAISE FND_API.G_EXC_ERROR;
6304 END IF;
6305 HZ_MATCH_RULE_37.get_party_for_search(
6306 p_party_id, x_party_search_rec,x_party_site_list,
6307 x_contact_list, x_contact_point_list);
6308 -- Code for Match rule DL RELATIONSHIP DEFAULT
6309 ELSIF p_rule_id=38 THEN
6310 IF NOT HZ_MATCH_RULE_38.check_staged THEN
6311 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6312 FND_MSG_PUB.ADD;
6313 RAISE FND_API.G_EXC_ERROR;
6314 END IF;
6315 HZ_MATCH_RULE_38.get_party_for_search(
6316 p_party_id, x_party_search_rec,x_party_site_list,
6317 x_contact_list, x_contact_point_list);
6318 -- Code for Match rule SAMPLE: SEARCH ADDRESS ORGANIZATIONS EXACT
6319 ELSIF p_rule_id=39 THEN
6320 IF NOT HZ_MATCH_RULE_39.check_staged THEN
6321 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6322 FND_MSG_PUB.ADD;
6323 RAISE FND_API.G_EXC_ERROR;
6324 END IF;
6325 HZ_MATCH_RULE_39.get_party_for_search(
6326 p_party_id, x_party_search_rec,x_party_site_list,
6327 x_contact_list, x_contact_point_list);
6328 -- Code for Match rule SAMPLE: SEARCH SIMILAR ORGANIZATION EXACT
6329 ELSIF p_rule_id=40 THEN
6330 IF NOT HZ_MATCH_RULE_40.check_staged THEN
6331 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6332 FND_MSG_PUB.ADD;
6333 RAISE FND_API.G_EXC_ERROR;
6334 END IF;
6335 HZ_MATCH_RULE_40.get_party_for_search(
6336 p_party_id, x_party_search_rec,x_party_site_list,
6337 x_contact_list, x_contact_point_list);
6338 -- Code for Match rule SAMPLE: SEARCH SIMILAR PERSON EXACT
6339 ELSIF p_rule_id=41 THEN
6340 IF NOT HZ_MATCH_RULE_41.check_staged THEN
6341 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6342 FND_MSG_PUB.ADD;
6343 RAISE FND_API.G_EXC_ERROR;
6344 END IF;
6345 HZ_MATCH_RULE_41.get_party_for_search(
6346 p_party_id, x_party_search_rec,x_party_site_list,
6347 x_contact_list, x_contact_point_list);
6348 -- Code for Match rule SAMPLE: SEARCH EXACT
6349 ELSIF p_rule_id=42 THEN
6350 IF NOT HZ_MATCH_RULE_42.check_staged THEN
6351 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6352 FND_MSG_PUB.ADD;
6353 RAISE FND_API.G_EXC_ERROR;
6354 END IF;
6355 HZ_MATCH_RULE_42.get_party_for_search(
6356 p_party_id, x_party_search_rec,x_party_site_list,
6357 x_contact_list, x_contact_point_list);
6358 -- Code for Match rule DL SYSTEM DUPLICATE IDENTIFICATION
6359 ELSIF p_rule_id=48 THEN
6360 IF NOT HZ_MATCH_RULE_48.check_staged THEN
6361 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6362 FND_MSG_PUB.ADD;
6363 RAISE FND_API.G_EXC_ERROR;
6364 END IF;
6365 HZ_MATCH_RULE_48.get_party_for_search(
6366 p_party_id, x_party_search_rec,x_party_site_list,
6367 x_contact_list, x_contact_point_list);
6368 -- Code for Match rule BULK MATCH: IDENTICAL ORGANIZATIONS
6369 ELSIF p_rule_id=50 THEN
6370 IF NOT HZ_MATCH_RULE_50.check_staged THEN
6371 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6372 FND_MSG_PUB.ADD;
6373 RAISE FND_API.G_EXC_ERROR;
6374 END IF;
6375 HZ_MATCH_RULE_50.get_party_for_search(
6376 p_party_id, x_party_search_rec,x_party_site_list,
6377 x_contact_list, x_contact_point_list);
6378 -- Code for Match rule BULK MATCH: IDENTICAL PERSONS
6379 ELSIF p_rule_id=51 THEN
6380 IF NOT HZ_MATCH_RULE_51.check_staged THEN
6381 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6382 FND_MSG_PUB.ADD;
6383 RAISE FND_API.G_EXC_ERROR;
6384 END IF;
6385 HZ_MATCH_RULE_51.get_party_for_search(
6386 p_party_id, x_party_search_rec,x_party_site_list,
6387 x_contact_list, x_contact_point_list);
6388 -- Code for Match rule BULK MATCH: IDENTICAL PARTIES
6389 ELSIF p_rule_id=52 THEN
6390 IF NOT HZ_MATCH_RULE_52.check_staged THEN
6391 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6392 FND_MSG_PUB.ADD;
6393 RAISE FND_API.G_EXC_ERROR;
6394 END IF;
6395 HZ_MATCH_RULE_52.get_party_for_search(
6396 p_party_id, x_party_search_rec,x_party_site_list,
6397 x_contact_list, x_contact_point_list);
6398 -- Code for Match rule CREDIT MANAGEMENT SEARCH
6399 ELSIF p_rule_id=53 THEN
6400 IF NOT HZ_MATCH_RULE_53.check_staged THEN
6401 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6402 FND_MSG_PUB.ADD;
6403 RAISE FND_API.G_EXC_ERROR;
6404 END IF;
6405 HZ_MATCH_RULE_53.get_party_for_search(
6406 p_party_id, x_party_search_rec,x_party_site_list,
6407 x_contact_list, x_contact_point_list);
6408 -- Code for Match rule HZ_PERSON_SIMPLE_SEARCH_RULE
6409 ELSIF p_rule_id=58 THEN
6410 IF NOT HZ_MATCH_RULE_58.check_staged THEN
6411 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6412 FND_MSG_PUB.ADD;
6413 RAISE FND_API.G_EXC_ERROR;
6414 END IF;
6415 HZ_MATCH_RULE_58.get_party_for_search(
6416 p_party_id, x_party_search_rec,x_party_site_list,
6417 x_contact_list, x_contact_point_list);
6418 -- Code for Match rule HZ_PERSON_ADVANCED_SEARCH_MATCH_RULE
6419 ELSIF p_rule_id=60 THEN
6420 IF NOT HZ_MATCH_RULE_60.check_staged THEN
6421 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6422 FND_MSG_PUB.ADD;
6423 RAISE FND_API.G_EXC_ERROR;
6424 END IF;
6425 HZ_MATCH_RULE_60.get_party_for_search(
6426 p_party_id, x_party_search_rec,x_party_site_list,
6427 x_contact_list, x_contact_point_list);
6428 -- Code for Match rule HZ_ORG_SIMPLE_SEARCH_RULE
6429 ELSIF p_rule_id=61 THEN
6430 IF NOT HZ_MATCH_RULE_61.check_staged THEN
6431 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6432 FND_MSG_PUB.ADD;
6433 RAISE FND_API.G_EXC_ERROR;
6434 END IF;
6435 HZ_MATCH_RULE_61.get_party_for_search(
6436 p_party_id, x_party_search_rec,x_party_site_list,
6437 x_contact_list, x_contact_point_list);
6438 -- Code for Match rule HZ_ORG_ADV_SEARCH_RULE
6439 ELSIF p_rule_id=62 THEN
6440 IF NOT HZ_MATCH_RULE_62.check_staged THEN
6441 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6442 FND_MSG_PUB.ADD;
6443 RAISE FND_API.G_EXC_ERROR;
6444 END IF;
6445 HZ_MATCH_RULE_62.get_party_for_search(
6446 p_party_id, x_party_search_rec,x_party_site_list,
6447 x_contact_list, x_contact_point_list);
6448 -- Code for Match rule HZ_CONTACT_SIMPLE_SEARCH_RULE
6449 ELSIF p_rule_id=98 THEN
6450 IF NOT HZ_MATCH_RULE_98.check_staged THEN
6451 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6452 FND_MSG_PUB.ADD;
6453 RAISE FND_API.G_EXC_ERROR;
6454 END IF;
6455 HZ_MATCH_RULE_98.get_party_for_search(
6456 p_party_id, x_party_search_rec,x_party_site_list,
6457 x_contact_list, x_contact_point_list);
6458 -- Code for Match rule HZ_CONTACT_ADV_SEARCH_MATCH_RULE
6459 ELSIF p_rule_id=99 THEN
6460 IF NOT HZ_MATCH_RULE_99.check_staged THEN
6461 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6462 FND_MSG_PUB.ADD;
6463 RAISE FND_API.G_EXC_ERROR;
6464 END IF;
6465 HZ_MATCH_RULE_99.get_party_for_search(
6466 p_party_id, x_party_search_rec,x_party_site_list,
6467 x_contact_list, x_contact_point_list);
6468 -- Code for Match rule Web Services: Identical Organizations
6469 ELSIF p_rule_id=238 THEN
6470 IF NOT HZ_MATCH_RULE_238.check_staged THEN
6471 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6472 FND_MSG_PUB.ADD;
6473 RAISE FND_API.G_EXC_ERROR;
6474 END IF;
6475 HZ_MATCH_RULE_238.get_party_for_search(
6476 p_party_id, x_party_search_rec,x_party_site_list,
6477 x_contact_list, x_contact_point_list);
6478 -- Code for Match rule Web Services: Identical Persons
6479 ELSIF p_rule_id=240 THEN
6480 IF NOT HZ_MATCH_RULE_240.check_staged THEN
6481 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6482 FND_MSG_PUB.ADD;
6483 RAISE FND_API.G_EXC_ERROR;
6484 END IF;
6485 HZ_MATCH_RULE_240.get_party_for_search(
6486 p_party_id, x_party_search_rec,x_party_site_list,
6487 x_contact_list, x_contact_point_list);
6488 END IF;
6489 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
6490 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);
6491 END IF;
6492 --Standard call to get message count and if count is 1, get message info
6493 FND_MSG_PUB.Count_And_Get(
6494 p_encoded => FND_API.G_FALSE,
6495 p_count => x_msg_count,
6496 p_data => x_msg_data);
6497 EXCEPTION
6498 WHEN FND_API.G_EXC_ERROR THEN
6499 x_return_status := FND_API.G_RET_STS_ERROR;
6500 FND_MSG_PUB.Count_And_Get(
6501 p_encoded => FND_API.G_FALSE,
6502 p_count => x_msg_count,
6503 p_data => x_msg_data);
6504 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6505 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6506 FND_MSG_PUB.Count_And_Get(
6507 p_encoded => FND_API.G_FALSE,
6508 p_count => x_msg_count,
6509 p_data => x_msg_data);
6510
6511 WHEN OTHERS THEN
6512 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6513 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_API_ERROR');
6514 FND_MESSAGE.SET_TOKEN('PROC' ,'HZ_PARTY_SEARCH');
6515 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
6516 FND_MSG_PUB.ADD;
6517
6518 FND_MSG_PUB.Count_And_Get(
6519 p_encoded => FND_API.G_FALSE,
6520 p_count => x_msg_count,
6521 p_data => x_msg_data);
6522 END;
6523 PROCEDURE get_search_criteria (
6524 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
6525 p_rule_id IN NUMBER,
6526 p_party_id IN NUMBER,
6527 p_party_site_ids IN IDList,
6528 p_contact_ids IN IDList,
6529 p_contact_pt_ids IN IDList,
6530 x_party_search_rec OUT NOCOPY party_search_rec_type,
6531 x_party_site_list OUT NOCOPY party_site_list,
6532 x_contact_list OUT NOCOPY contact_list,
6533 x_contact_point_list OUT NOCOPY contact_point_list,
6534 x_return_status OUT VARCHAR2,
6535 x_msg_count OUT NUMBER,
6536 x_msg_data OUT VARCHAR2
6537 ) IS
6538 CURSOR c_match_rule IS
6539 SELECT COMPILATION_FLAG
6540 FROM HZ_MATCH_RULES_VL
6541 WHERE MATCH_RULE_ID = p_rule_id;
6542 l_cmp_flag VARCHAR2(1);
6543 BEGIN
6544 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
6545 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);
6546 END IF;
6547 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
6548 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);
6549 END IF;
6550
6551 -- Initialize return status and message stack
6552 x_return_status := FND_API.G_RET_STS_SUCCESS;
6553 IF FND_API.to_Boolean(p_init_msg_list) THEN
6554 FND_MSG_PUB.initialize;
6555 END IF;
6556
6557 IF p_rule_id IS NULL OR p_rule_id = 0 THEN
6558 -- No MATCH RULE FOUND
6559 FND_MESSAGE.SET_NAME('AR', 'HZ_NO_MATCH_RULE');
6560 FND_MSG_PUB.ADD;
6561 RAISE FND_API.G_EXC_ERROR;
6562 END IF;
6563 OPEN c_match_rule;
6564 FETCH c_match_rule INTO l_cmp_flag;
6565 IF c_match_rule%NOTFOUND OR l_cmp_flag <> 'C' THEN
6566 FND_MESSAGE.SET_NAME('AR', 'HZ_INVALID_MATCH_RULE');
6567 FND_MSG_PUB.ADD;
6568 RAISE FND_API.G_EXC_ERROR;
6569 END IF;
6570 -- Code for Match rule SAMPLE: ORGANIZATIONS_OPTIMIZED
6571 IF p_rule_id=2 THEN
6572 IF NOT HZ_MATCH_RULE_2.check_staged THEN
6573 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6574 FND_MSG_PUB.ADD;
6575 RAISE FND_API.G_EXC_ERROR;
6576 END IF;
6577 HZ_MATCH_RULE_2.get_search_criteria(
6578 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6579 x_contact_list, x_contact_point_list);
6580 -- Code for Match rule SAMPLE: PERSON_OPTIMIZED
6581 ELSIF p_rule_id=3 THEN
6582 IF NOT HZ_MATCH_RULE_3.check_staged THEN
6583 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6584 FND_MSG_PUB.ADD;
6585 RAISE FND_API.G_EXC_ERROR;
6586 END IF;
6587 HZ_MATCH_RULE_3.get_search_criteria(
6588 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6589 x_contact_list, x_contact_point_list);
6590 -- Code for Match rule SAMPLE: ADDRESS_ORGANIZATIONS
6591 ELSIF p_rule_id=4 THEN
6592 IF NOT HZ_MATCH_RULE_4.check_staged THEN
6593 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6594 FND_MSG_PUB.ADD;
6595 RAISE FND_API.G_EXC_ERROR;
6596 END IF;
6597 HZ_MATCH_RULE_4.get_search_criteria(
6598 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6599 x_contact_list, x_contact_point_list);
6600 -- Code for Match rule SAMPLE: ADDRESS_PERSONS
6601 ELSIF p_rule_id=5 THEN
6602 IF NOT HZ_MATCH_RULE_5.check_staged THEN
6603 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6604 FND_MSG_PUB.ADD;
6605 RAISE FND_API.G_EXC_ERROR;
6606 END IF;
6607 HZ_MATCH_RULE_5.get_search_criteria(
6608 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6609 x_contact_list, x_contact_point_list);
6610 -- Code for Match rule SAMPLE: SIMILAR_ORGANIZATION
6611 ELSIF p_rule_id=6 THEN
6612 IF NOT HZ_MATCH_RULE_6.check_staged THEN
6613 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6614 FND_MSG_PUB.ADD;
6615 RAISE FND_API.G_EXC_ERROR;
6616 END IF;
6617 HZ_MATCH_RULE_6.get_search_criteria(
6618 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6619 x_contact_list, x_contact_point_list);
6620 -- Code for Match rule SAMPLE: SIMILAR_PERSON
6621 ELSIF p_rule_id=7 THEN
6622 IF NOT HZ_MATCH_RULE_7.check_staged THEN
6623 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6624 FND_MSG_PUB.ADD;
6625 RAISE FND_API.G_EXC_ERROR;
6626 END IF;
6627 HZ_MATCH_RULE_7.get_search_criteria(
6628 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6629 x_contact_list, x_contact_point_list);
6630 -- Code for Match rule SAMPLE: SEARCH
6631 ELSIF p_rule_id=8 THEN
6632 IF NOT HZ_MATCH_RULE_8.check_staged THEN
6633 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6634 FND_MSG_PUB.ADD;
6635 RAISE FND_API.G_EXC_ERROR;
6636 END IF;
6637 HZ_MATCH_RULE_8.get_search_criteria(
6638 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6639 x_contact_list, x_contact_point_list);
6640 -- Code for Match rule RM SEARCH RULE
6641 ELSIF p_rule_id=32 THEN
6642 IF NOT HZ_MATCH_RULE_32.check_staged THEN
6643 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6644 FND_MSG_PUB.ADD;
6645 RAISE FND_API.G_EXC_ERROR;
6646 END IF;
6647 HZ_MATCH_RULE_32.get_search_criteria(
6648 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6649 x_contact_list, x_contact_point_list);
6650 -- Code for Match rule SAMPLE:BASIC SEARCH RULE
6651 ELSIF p_rule_id=33 THEN
6652 IF NOT HZ_MATCH_RULE_33.check_staged THEN
6653 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6654 FND_MSG_PUB.ADD;
6655 RAISE FND_API.G_EXC_ERROR;
6656 END IF;
6657 HZ_MATCH_RULE_33.get_search_criteria(
6658 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6659 x_contact_list, x_contact_point_list);
6660 -- Code for Match rule SAMPLE:ADVANCED SEARCH RULE
6661 ELSIF p_rule_id=34 THEN
6662 IF NOT HZ_MATCH_RULE_34.check_staged THEN
6663 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6664 FND_MSG_PUB.ADD;
6665 RAISE FND_API.G_EXC_ERROR;
6666 END IF;
6667 HZ_MATCH_RULE_34.get_search_criteria(
6668 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6669 x_contact_list, x_contact_point_list);
6670 -- Code for Match rule DL SMART SEARCH
6671 ELSIF p_rule_id=35 THEN
6672 IF NOT HZ_MATCH_RULE_35.check_staged THEN
6673 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6674 FND_MSG_PUB.ADD;
6675 RAISE FND_API.G_EXC_ERROR;
6676 END IF;
6677 HZ_MATCH_RULE_35.get_search_criteria(
6678 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6679 x_contact_list, x_contact_point_list);
6680 -- Code for Match rule DL ADDRESS AND RELATIONSHIP SEARCH
6681 ELSIF p_rule_id=36 THEN
6682 IF NOT HZ_MATCH_RULE_36.check_staged THEN
6683 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6684 FND_MSG_PUB.ADD;
6685 RAISE FND_API.G_EXC_ERROR;
6686 END IF;
6687 HZ_MATCH_RULE_36.get_search_criteria(
6688 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6689 x_contact_list, x_contact_point_list);
6690 -- Code for Match rule DL ADDRESS DEFAULT
6691 ELSIF p_rule_id=37 THEN
6692 IF NOT HZ_MATCH_RULE_37.check_staged THEN
6693 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6694 FND_MSG_PUB.ADD;
6695 RAISE FND_API.G_EXC_ERROR;
6696 END IF;
6697 HZ_MATCH_RULE_37.get_search_criteria(
6698 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6699 x_contact_list, x_contact_point_list);
6700 -- Code for Match rule DL RELATIONSHIP DEFAULT
6701 ELSIF p_rule_id=38 THEN
6702 IF NOT HZ_MATCH_RULE_38.check_staged THEN
6703 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6704 FND_MSG_PUB.ADD;
6705 RAISE FND_API.G_EXC_ERROR;
6706 END IF;
6707 HZ_MATCH_RULE_38.get_search_criteria(
6708 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6709 x_contact_list, x_contact_point_list);
6710 -- Code for Match rule SAMPLE: SEARCH ADDRESS ORGANIZATIONS EXACT
6711 ELSIF p_rule_id=39 THEN
6712 IF NOT HZ_MATCH_RULE_39.check_staged THEN
6713 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6714 FND_MSG_PUB.ADD;
6715 RAISE FND_API.G_EXC_ERROR;
6716 END IF;
6717 HZ_MATCH_RULE_39.get_search_criteria(
6718 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6719 x_contact_list, x_contact_point_list);
6720 -- Code for Match rule SAMPLE: SEARCH SIMILAR ORGANIZATION EXACT
6721 ELSIF p_rule_id=40 THEN
6722 IF NOT HZ_MATCH_RULE_40.check_staged THEN
6723 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6724 FND_MSG_PUB.ADD;
6725 RAISE FND_API.G_EXC_ERROR;
6726 END IF;
6727 HZ_MATCH_RULE_40.get_search_criteria(
6728 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6729 x_contact_list, x_contact_point_list);
6730 -- Code for Match rule SAMPLE: SEARCH SIMILAR PERSON EXACT
6731 ELSIF p_rule_id=41 THEN
6732 IF NOT HZ_MATCH_RULE_41.check_staged THEN
6733 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6734 FND_MSG_PUB.ADD;
6735 RAISE FND_API.G_EXC_ERROR;
6736 END IF;
6737 HZ_MATCH_RULE_41.get_search_criteria(
6738 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6739 x_contact_list, x_contact_point_list);
6740 -- Code for Match rule SAMPLE: SEARCH EXACT
6741 ELSIF p_rule_id=42 THEN
6742 IF NOT HZ_MATCH_RULE_42.check_staged THEN
6743 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6744 FND_MSG_PUB.ADD;
6745 RAISE FND_API.G_EXC_ERROR;
6746 END IF;
6747 HZ_MATCH_RULE_42.get_search_criteria(
6748 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6749 x_contact_list, x_contact_point_list);
6750 -- Code for Match rule DL SYSTEM DUPLICATE IDENTIFICATION
6751 ELSIF p_rule_id=48 THEN
6752 IF NOT HZ_MATCH_RULE_48.check_staged THEN
6753 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6754 FND_MSG_PUB.ADD;
6755 RAISE FND_API.G_EXC_ERROR;
6756 END IF;
6757 HZ_MATCH_RULE_48.get_search_criteria(
6758 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6759 x_contact_list, x_contact_point_list);
6760 -- Code for Match rule BULK MATCH: IDENTICAL ORGANIZATIONS
6761 ELSIF p_rule_id=50 THEN
6762 IF NOT HZ_MATCH_RULE_50.check_staged THEN
6763 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6764 FND_MSG_PUB.ADD;
6765 RAISE FND_API.G_EXC_ERROR;
6766 END IF;
6767 HZ_MATCH_RULE_50.get_search_criteria(
6768 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6769 x_contact_list, x_contact_point_list);
6770 -- Code for Match rule BULK MATCH: IDENTICAL PERSONS
6771 ELSIF p_rule_id=51 THEN
6772 IF NOT HZ_MATCH_RULE_51.check_staged THEN
6773 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6774 FND_MSG_PUB.ADD;
6775 RAISE FND_API.G_EXC_ERROR;
6776 END IF;
6777 HZ_MATCH_RULE_51.get_search_criteria(
6778 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6779 x_contact_list, x_contact_point_list);
6780 -- Code for Match rule BULK MATCH: IDENTICAL PARTIES
6781 ELSIF p_rule_id=52 THEN
6782 IF NOT HZ_MATCH_RULE_52.check_staged THEN
6783 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6784 FND_MSG_PUB.ADD;
6785 RAISE FND_API.G_EXC_ERROR;
6786 END IF;
6787 HZ_MATCH_RULE_52.get_search_criteria(
6788 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6789 x_contact_list, x_contact_point_list);
6790 -- Code for Match rule CREDIT MANAGEMENT SEARCH
6791 ELSIF p_rule_id=53 THEN
6792 IF NOT HZ_MATCH_RULE_53.check_staged THEN
6793 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6794 FND_MSG_PUB.ADD;
6795 RAISE FND_API.G_EXC_ERROR;
6796 END IF;
6797 HZ_MATCH_RULE_53.get_search_criteria(
6798 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6799 x_contact_list, x_contact_point_list);
6800 -- Code for Match rule HZ_PERSON_SIMPLE_SEARCH_RULE
6801 ELSIF p_rule_id=58 THEN
6802 IF NOT HZ_MATCH_RULE_58.check_staged THEN
6803 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6804 FND_MSG_PUB.ADD;
6805 RAISE FND_API.G_EXC_ERROR;
6806 END IF;
6807 HZ_MATCH_RULE_58.get_search_criteria(
6808 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6809 x_contact_list, x_contact_point_list);
6810 -- Code for Match rule HZ_PERSON_ADVANCED_SEARCH_MATCH_RULE
6811 ELSIF p_rule_id=60 THEN
6812 IF NOT HZ_MATCH_RULE_60.check_staged THEN
6813 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6814 FND_MSG_PUB.ADD;
6815 RAISE FND_API.G_EXC_ERROR;
6816 END IF;
6817 HZ_MATCH_RULE_60.get_search_criteria(
6818 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6819 x_contact_list, x_contact_point_list);
6820 -- Code for Match rule HZ_ORG_SIMPLE_SEARCH_RULE
6821 ELSIF p_rule_id=61 THEN
6822 IF NOT HZ_MATCH_RULE_61.check_staged THEN
6823 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6824 FND_MSG_PUB.ADD;
6825 RAISE FND_API.G_EXC_ERROR;
6826 END IF;
6827 HZ_MATCH_RULE_61.get_search_criteria(
6828 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6829 x_contact_list, x_contact_point_list);
6830 -- Code for Match rule HZ_ORG_ADV_SEARCH_RULE
6831 ELSIF p_rule_id=62 THEN
6832 IF NOT HZ_MATCH_RULE_62.check_staged THEN
6833 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6834 FND_MSG_PUB.ADD;
6835 RAISE FND_API.G_EXC_ERROR;
6836 END IF;
6837 HZ_MATCH_RULE_62.get_search_criteria(
6838 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6839 x_contact_list, x_contact_point_list);
6840 -- Code for Match rule HZ_CONTACT_SIMPLE_SEARCH_RULE
6841 ELSIF p_rule_id=98 THEN
6842 IF NOT HZ_MATCH_RULE_98.check_staged THEN
6843 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6844 FND_MSG_PUB.ADD;
6845 RAISE FND_API.G_EXC_ERROR;
6846 END IF;
6847 HZ_MATCH_RULE_98.get_search_criteria(
6848 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6849 x_contact_list, x_contact_point_list);
6850 -- Code for Match rule HZ_CONTACT_ADV_SEARCH_MATCH_RULE
6851 ELSIF p_rule_id=99 THEN
6852 IF NOT HZ_MATCH_RULE_99.check_staged THEN
6853 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6854 FND_MSG_PUB.ADD;
6855 RAISE FND_API.G_EXC_ERROR;
6856 END IF;
6857 HZ_MATCH_RULE_99.get_search_criteria(
6858 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6859 x_contact_list, x_contact_point_list);
6860 -- Code for Match rule Web Services: Identical Organizations
6861 ELSIF p_rule_id=238 THEN
6862 IF NOT HZ_MATCH_RULE_238.check_staged THEN
6863 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6864 FND_MSG_PUB.ADD;
6865 RAISE FND_API.G_EXC_ERROR;
6866 END IF;
6867 HZ_MATCH_RULE_238.get_search_criteria(
6868 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6869 x_contact_list, x_contact_point_list);
6870 -- Code for Match rule Web Services: Identical Persons
6871 ELSIF p_rule_id=240 THEN
6872 IF NOT HZ_MATCH_RULE_240.check_staged THEN
6873 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6874 FND_MSG_PUB.ADD;
6875 RAISE FND_API.G_EXC_ERROR;
6876 END IF;
6877 HZ_MATCH_RULE_240.get_search_criteria(
6878 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6879 x_contact_list, x_contact_point_list);
6880 END IF;
6881 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
6882 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);
6883 END IF;
6884 --Standard call to get message count and if count is 1, get message info
6885 FND_MSG_PUB.Count_And_Get(
6886 p_encoded => FND_API.G_FALSE,
6887 p_count => x_msg_count,
6888 p_data => x_msg_data);
6889 EXCEPTION
6890 WHEN FND_API.G_EXC_ERROR THEN
6891 x_return_status := FND_API.G_RET_STS_ERROR;
6892 FND_MSG_PUB.Count_And_Get(
6893 p_encoded => FND_API.G_FALSE,
6894 p_count => x_msg_count,
6895 p_data => x_msg_data);
6896 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6897 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6898 FND_MSG_PUB.Count_And_Get(
6899 p_encoded => FND_API.G_FALSE,
6900 p_count => x_msg_count,
6901 p_data => x_msg_data);
6902
6903 WHEN OTHERS THEN
6904 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6905 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_API_ERROR');
6906 FND_MESSAGE.SET_TOKEN('PROC' ,'HZ_PARTY_SEARCH');
6907 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
6908 FND_MSG_PUB.ADD;
6909
6910 FND_MSG_PUB.Count_And_Get(
6911 p_encoded => FND_API.G_FALSE,
6912 p_count => x_msg_count,
6913 p_data => x_msg_data);
6914 END;
6915 END;