DBA Data[Home] [Help]

PACKAGE BODY: APPS.HZ_WORD_REPLACEMENT_PUB

Source


1 package body HZ_WORD_REPLACEMENT_PUB AS
2 /*$Header: ARHWRLSB.pls 120.1 2005/06/16 21:16:30 jhuang ship $ */
3 
4 G_PKG_NAME CONSTANT VARCHAR2(30) := 'HZ_WORD_REPLACEMENT_PUB';
5 
6 procedure do_create_word_replacement(
7         p_word_replacement_rec           IN      WORD_REPLACEMENT_REC_TYPE,
8         x_original_word                  OUT     NOCOPY VARCHAR2,
9         x_type                           OUT     NOCOPY VARCHAR2,
10 	x_return_status                  IN OUT  NOCOPY VARCHAR2
11 );
12 
13 
14 procedure do_update_word_replacement(
15         p_word_replacement_rec           IN      WORD_REPLACEMENT_REC_TYPE,
16         p_last_update_date               IN OUT  NOCOPY DATE,
17 	x_return_status                  IN OUT  NOCOPY VARCHAR2
18 );
19 
20 procedure validate_word_replacement(
21         p_word_replacement_rec  	 IN      WORD_REPLACEMENT_REC_TYPE,
22         create_update_flag               IN      VARCHAR2,
23         x_return_status                  IN OUT  NOCOPY VARCHAR2
24 );
25 
26 procedure get_current_word_replacement(
27         p_original_word                  IN      VARCHAR2,
28         p_type                           IN      VARCHAR2,
29         x_word_replacement_rec           OUT	 NOCOPY WORD_REPLACEMENT_REC_TYPE
30 );
31 
32 
33 /*===========================================================================+
34  | PROCEDURE                                                                 |
35  |              create_word_replacement                                      |
36  |                                                                           |
37  | DESCRIPTION                                                               |
38  |              Creates word replacement record.	                     |
39  |                                                                           |
40  | SCOPE - PUBLIC                                                            |
41  |                                                                           |
42  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
43  |                                                                           |
44  | ARGUMENTS  : IN:                                                          |
45  |                    p_api_version                                          |
46  |                    p_init_msg_list                                        |
47  |                    p_commit                                               |
48  |                    p_word_replacement_rec                                 |
49  |              OUT:                                                         |
50  |                    x_return_status                                        |
51  |                    x_msg_count                                            |
52  |                    x_msg_data                                             |
53  |                    x_original_word                                        |
54  |                    x_type                                                 |
55  |          IN/ OUT:                                                         |
56  |                                                                           |
57  | RETURNS    : NONE                                                         |
58  |                                                                           |
59  | NOTES                                                                     |
60  |                                                                           |
61  | MODIFICATION HISTORY                                                      |
62  |    Indrajit Sen   14-JUN-00  Created                                      |
63  |                                                                           |
64  +===========================================================================*/
65 
66 procedure create_word_replacement (
67 	p_api_version	        IN	NUMBER,
68 	p_init_msg_list		IN	VARCHAR2:= FND_API.G_FALSE,
69 	p_commit		IN	VARCHAR2:= FND_API.G_FALSE,
70 	p_word_replacement_rec	IN	WORD_REPLACEMENT_REC_TYPE,
71 	x_return_status		OUT	NOCOPY VARCHAR2,
72 	x_msg_count		OUT	NOCOPY NUMBER,
73 	x_msg_data		OUT	NOCOPY VARCHAR2,
74 	x_original_word		OUT	NOCOPY VARCHAR2,
75 	x_type		        OUT	NOCOPY VARCHAR2,
76         p_validation_level      IN      NUMBER:= FND_API.G_VALID_LEVEL_FULL
77 ) IS
78 	l_api_name              CONSTANT VARCHAR2(30) := 'create_word_replacement';
79         l_api_version           CONSTANT  NUMBER       := 1.0;
80 
81 	l_word_replacement_rec          WORD_REPLACEMENT_REC_TYPE := p_word_replacement_rec;
82 BEGIN
83 --Standard start of API savepoint
84         SAVEPOINT create_word_replacement_pub;
85 
86 --Standard call to check for call compatibility.
87         IF NOT FND_API.Compatible_API_Call(
88                                         l_api_version,
89                                         p_api_version,
90                                         l_api_name,
91                                         G_PKG_NAME)
92         THEN
93                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
94         END IF;
95 
96 --Initialize message list if p_init_msg_list is set to TRUE.
97         IF FND_API.to_Boolean(p_init_msg_list) THEN
98                 FND_MSG_PUB.initialize;
99         END IF;
100 
101 --Initialize API return status to success.
102         x_return_status := FND_API.G_RET_STS_SUCCESS;
103 
104 --Call to business logic.
105         do_create_word_replacement(
106                         l_word_replacement_rec,
107                         x_original_word,
108                         x_type,
109 			x_return_status);
110 
111 --Standard check of p_commit.
112         IF FND_API.to_Boolean(p_commit) THEN
113                 commit;
114         END IF;
115 
116 --Standard call to get message count and if count is 1, get message info.
117         FND_MSG_PUB.Count_And_Get(
118                 p_encoded => FND_API.G_FALSE,
119                 p_count => x_msg_count,
120                 p_data  => x_msg_data);
121 
122 EXCEPTION
123         WHEN FND_API.G_EXC_ERROR THEN
124                 ROLLBACK TO create_word_replacement_pub;
125                 x_return_status := FND_API.G_RET_STS_ERROR;
126                 FND_MSG_PUB.Count_And_Get(
127                                 p_encoded => FND_API.G_FALSE,
128                                 p_count => x_msg_count,
129                                 p_data  => x_msg_data);
130 
131         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
132                 ROLLBACK TO create_word_replacement_pub;
133                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
134                 FND_MSG_PUB.Count_And_Get(
135                                 p_encoded => FND_API.G_FALSE,
136                                 p_count => x_msg_count,
137                                 p_data  => x_msg_data);
138 
139         WHEN OTHERS THEN
140                 ROLLBACK TO create_word_replacement_pub;
141                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
142 
143 		FND_MESSAGE.SET_NAME('AR', 'HZ_API_OTHERS_EXCEP');
144                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
145                 FND_MSG_PUB.ADD;
146 
147                 FND_MSG_PUB.Count_And_Get(
148                                 p_encoded => FND_API.G_FALSE,
149                                 p_count => x_msg_count,
150                                 p_data  => x_msg_data);
151 
152 END;
153 
154 /*===========================================================================+
155  | PROCEDURE                                                                 |
156  |              update_word_replacement                                      |
157  |                                                                           |
158  | DESCRIPTION                                                               |
159  |              Updates word replacement.	                             |
160  |                                                                           |
161  | SCOPE - PUBLIC                                                            |
162  |                                                                           |
163  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
164  |                                                                           |
165  | ARGUMENTS  : IN:                                                          |
166  |                    p_api_version                                          |
167  |                    p_init_msg_list                                        |
168  |                    p_commit                                               |
169  |                    p_word_replacement_rec                                 |
170  |                    p_last_update_date           	                     |
171  |              OUT:                                                         |
172  |                    x_return_status                                        |
173  |                    x_msg_count                                            |
174  |                    x_msg_data                                             |
175  |          IN/ OUT:                                                         |
176  |                                                                           |
177  | RETURNS    : NONE                                                         |
178  |                                                                           |
179  | NOTES                                                                     |
180  |                                                                           |
181  | MODIFICATION HISTORY                                                      |
182  |    Indrajit Sen   14-JUN-00  Created                                      |
183  |                                                                           |
184  +===========================================================================*/
185 
186 procedure update_word_replacement (
187 	p_api_version	IN	NUMBER,
188 	p_init_msg_list		IN	VARCHAR2:=FND_API.G_FALSE,
189 	p_commit		IN	VARCHAR2:=FND_API.G_FALSE,
190 	p_word_replacement_rec	IN	WORD_REPLACEMENT_REC_TYPE,
191 	p_last_update_date	IN OUT	NOCOPY DATE,
192 	x_return_status		OUT	NOCOPY VARCHAR2,
193 	x_msg_count		OUT	NOCOPY NUMBER,
194 	x_msg_data		OUT	NOCOPY VARCHAR2,
195         p_validation_level      IN      NUMBER:= FND_API.G_VALID_LEVEL_FULL
196 ) IS
197 	l_api_name              CONSTANT VARCHAR2(30) := 'update_word_replacement';
198         l_api_version           CONSTANT  NUMBER       := 1.0;
199 
200 	l_word_replacement_rec	        WORD_REPLACEMENT_REC_TYPE := p_word_replacement_rec;
201 	l_old_word_replacement_rec      WORD_REPLACEMENT_REC_TYPE;
202 BEGIN
203 --Standard start of API savepoint
204         SAVEPOINT update_word_replacement_pub;
205 
206 --Standard call to check for call compatibility.
207         IF NOT FND_API.Compatible_API_Call(
208                                         l_api_version,
209                                         p_api_version,
210                                         l_api_name,
211                                         G_PKG_NAME)
212         THEN
213                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
214         END IF;
215 
216 --Initialize message list if p_init_msg_list is set to TRUE.
217         IF FND_API.to_Boolean(p_init_msg_list) THEN
218                 FND_MSG_PUB.initialize;
219         END IF;
220 
221 --Initialize API return status to success.
222         x_return_status := FND_API.G_RET_STS_SUCCESS;
223 
224 --Get the old record.
225 	get_current_word_replacement(
226         	l_word_replacement_rec.original_word,
227         	l_word_replacement_rec.type,
228 		l_old_word_replacement_rec);
229 
230 --Call to business logic.
231         do_update_word_replacement(
232                         l_word_replacement_rec,
233                         p_last_update_date,
234 			x_return_status);
235 
236 --Standard check of p_commit.
237         IF FND_API.to_Boolean(p_commit) THEN
238                 commit;
239         END IF;
240 
241 --Standard call to get message count and if count is 1, get message info.
242         FND_MSG_PUB.Count_And_Get(
243                 p_encoded => FND_API.G_FALSE,
244                 p_count => x_msg_count,
245                 p_data  => x_msg_data);
246 
247 EXCEPTION
248         WHEN FND_API.G_EXC_ERROR THEN
249                 ROLLBACK TO update_word_replacement_pub;
250                 x_return_status := FND_API.G_RET_STS_ERROR;
251                 FND_MSG_PUB.Count_And_Get(
252                                 p_encoded => FND_API.G_FALSE,
253                                 p_count => x_msg_count,
254                                 p_data  => x_msg_data);
255 
256         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
257                 ROLLBACK TO update_word_replacement_pub;
258                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
259                 FND_MSG_PUB.Count_And_Get(
260                                 p_encoded => FND_API.G_FALSE,
261                                 p_count => x_msg_count,
262                                 p_data  => x_msg_data);
263 
264         WHEN OTHERS THEN
265                 ROLLBACK TO update_word_replacement_pub;
266                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
267 
268 		FND_MESSAGE.SET_NAME('AR', 'HZ_API_OTHERS_EXCEP');
269                 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
270                 FND_MSG_PUB.ADD;
271 
272                 FND_MSG_PUB.Count_And_Get(
273                                 p_encoded => FND_API.G_FALSE,
274                                 p_count => x_msg_count,
275                                 p_data  => x_msg_data);
276 
277 END;
278 
279 /*===========================================================================+
280  | PROCEDURE                                                                 |
281  |              do_create_word_replacement                                   |
282  |                                                                           |
283  | DESCRIPTION                                                               |
284  |              Creates word replacements. 	                             |
285  |                                                                           |
286  | SCOPE - PRIVATE                                                           |
287  |                                                                           |
288  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
289  |                                                                           |
290  | ARGUMENTS  : IN:                                                          |
291  |                    p_word_replacement_rec                                 |
292  |              OUT:                                                         |
293  |                    x_original_word                                        |
294  |                    x_type                                                 |
295  |          IN/ OUT:                                                         |
296  |                                                                           |
297  | RETURNS    : NONE                                                         |
298  |                                                                           |
299  | NOTES                                                                     |
300  |                                                                           |
301  | MODIFICATION HISTORY                                                      |
302  |    Indrajit Sen   14-JUN-00  Created                                      |
303  |                                                                           |
304  +===========================================================================*/
305 
306 procedure do_create_word_replacement(
307         p_word_replacement_rec          IN      WORD_REPLACEMENT_REC_TYPE,
308         x_original_word                 OUT     NOCOPY VARCHAR2,
309         x_type                          OUT     NOCOPY VARCHAR2,
310 	x_return_status			IN OUT	NOCOPY VARCHAR2
311 ) IS
312         l_rowid         ROWID := NULL;
313         l_count         NUMBER;
314 BEGIN
315 
316         validate_word_replacement(p_word_replacement_rec, 'C', x_return_status);
317 
318 	IF x_return_status = FND_API.G_RET_STS_ERROR THEN
319 		RAISE FND_API.G_EXC_ERROR;
320         END IF;
321 
322 --Call table-handler.
323 
324 	HZ_WORD_REPLACEMENTS_PKG.INSERT_ROW(
325         X_Rowid => l_Rowid,
326         X_ORIGINAL_WORD => p_word_replacement_rec.ORIGINAL_WORD,
327         X_REPLACEMENT_WORD => p_word_replacement_rec.REPLACEMENT_WORD,
328         X_TYPE => p_word_replacement_rec.TYPE,
329         X_COUNTRY_CODE => p_word_replacement_rec.COUNTRY_CODE,
330         X_LAST_UPDATE_DATE => hz_utility_pub.LAST_UPDATE_DATE,
331         X_LAST_UPDATED_BY => hz_utility_pub.LAST_UPDATED_BY,
332         X_CREATION_DATE => hz_utility_pub.CREATION_DATE,
333         X_CREATED_BY => hz_utility_pub.CREATED_BY,
334         X_LAST_UPDATE_LOGIN => hz_utility_pub.LAST_UPDATE_LOGIN,
335         X_ATTRIBUTE_CATEGORY => p_word_replacement_rec.ATTRIBUTE_CATEGORY,
336         X_ATTRIBUTE1 => p_word_replacement_rec.ATTRIBUTE1,
337         X_ATTRIBUTE2 => p_word_replacement_rec.ATTRIBUTE2,
338         X_ATTRIBUTE3 => p_word_replacement_rec.ATTRIBUTE3,
339         X_ATTRIBUTE4 => p_word_replacement_rec.ATTRIBUTE4,
340         X_ATTRIBUTE5 => p_word_replacement_rec.ATTRIBUTE5,
341         X_ATTRIBUTE6 => p_word_replacement_rec.ATTRIBUTE6,
342         X_ATTRIBUTE7 => p_word_replacement_rec.ATTRIBUTE7,
343         X_ATTRIBUTE8 => p_word_replacement_rec.ATTRIBUTE8,
344         X_ATTRIBUTE9 => p_word_replacement_rec.ATTRIBUTE9,
345         X_ATTRIBUTE10 => p_word_replacement_rec.ATTRIBUTE10,
346         X_ATTRIBUTE11 => p_word_replacement_rec.ATTRIBUTE11,
347         X_ATTRIBUTE12 => p_word_replacement_rec.ATTRIBUTE12,
348         X_ATTRIBUTE13 => p_word_replacement_rec.ATTRIBUTE13,
349 	X_ATTRIBUTE14 => p_word_replacement_rec.ATTRIBUTE14,
350         X_ATTRIBUTE15 => p_word_replacement_rec.ATTRIBUTE15
351 	);
352 
353 
354 END;
355 
356 /*===========================================================================+
357  | PROCEDURE                                                                 |
358  |              do_update_word_replacement                                   |
359  |                                                                           |
360  | DESCRIPTION                                                               |
361  |              Updates word replacement. 	                             |
362  |                                                                           |
363  | SCOPE - PRIVATE                                                           |
364  |                                                                           |
365  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
366  |                                                                           |
367  | ARGUMENTS  : IN:                                                          |
368  |                    p_word_replacement_rec                                 |
369  |                    p_last_update_date           	                     |
370  |              OUT:                                                         |
371  |          IN/ OUT:                                                         |
372  |                                                                           |
373  | RETURNS    : NONE                                                         |
374  |                                                                           |
375  | NOTES                                                                     |
376  |                                                                           |
377  | MODIFICATION HISTORY                                                      |
378  |    Indrajit Sen   14-JUN-00  Created                                      |
379  |                                                                           |
380  +===========================================================================*/
381 
382 procedure do_update_word_replacement(
383         p_word_replacement_rec         IN      WORD_REPLACEMENT_REC_TYPE,
384         p_last_update_date             IN OUT  NOCOPY DATE,
385 	x_return_status		       IN OUT  NOCOPY VARCHAR2
386 ) IS
387         l_last_update_date              DATE;
388         l_rowid                         ROWID;
389 BEGIN
390 
391 --Check whether last_update_date has been passed in.
392   IF p_last_update_date IS NULL OR
393         p_last_update_date = FND_API.G_MISS_DATE THEN
394 
395         FND_MESSAGE.SET_NAME('AR', 'HZ_API_MISSING_COLUMN');
396         FND_MESSAGE.SET_TOKEN('COLUMN', 'word replacement last update date');
397         FND_MSG_PUB.ADD;
398         RAISE FND_API.G_EXC_ERROR;
399   END IF;
400 
401 
402 --Call for validations.
403   validate_word_replacement(p_word_replacement_rec, 'U', x_return_status);
404 
405   IF x_return_status = FND_API.G_RET_STS_ERROR THEN
406         RAISE FND_API.G_EXC_ERROR;
407   END IF;
408 
409 
410 --Pass back last_update_date.
411 	p_last_update_date := hz_utility_pub.LAST_UPDATE_DATE;
412 
413 --Select rowid.
414         select rowid INTO l_rowid FROM hz_word_replacements
415         WHERE original_word = p_word_replacement_rec.original_word
416         AND   type = p_word_replacement_rec.type;
417 
418 --Call to table-handler.
419 
420 	HZ_WORD_REPLACEMENTS_PKG.UPDATE_ROW(
421         X_Rowid => l_Rowid,
422         X_ORIGINAL_WORD => p_word_replacement_rec.ORIGINAL_WORD,
423         X_REPLACEMENT_WORD => p_word_replacement_rec.REPLACEMENT_WORD,
424         X_TYPE => p_word_replacement_rec.TYPE,
425         X_COUNTRY_CODE => p_word_replacement_rec.COUNTRY_CODE,
426 	X_LAST_UPDATE_DATE => hz_utility_pub.LAST_UPDATE_DATE,
427         X_LAST_UPDATED_BY => hz_utility_pub.LAST_UPDATED_BY,
428         X_CREATION_DATE => FND_API.G_MISS_DATE,
429         X_CREATED_BY => FND_API.G_MISS_NUM,
430         X_LAST_UPDATE_LOGIN => hz_utility_pub.LAST_UPDATE_LOGIN,
431         X_ATTRIBUTE_CATEGORY => p_word_replacement_rec.ATTRIBUTE_CATEGORY,
432         X_ATTRIBUTE1 => p_word_replacement_rec.ATTRIBUTE1,
433         X_ATTRIBUTE2 => p_word_replacement_rec.ATTRIBUTE2,
434         X_ATTRIBUTE3 => p_word_replacement_rec.ATTRIBUTE3,
435         X_ATTRIBUTE4 => p_word_replacement_rec.ATTRIBUTE4,
436         X_ATTRIBUTE5 => p_word_replacement_rec.ATTRIBUTE5,
437         X_ATTRIBUTE6 => p_word_replacement_rec.ATTRIBUTE6,
438         X_ATTRIBUTE7 => p_word_replacement_rec.ATTRIBUTE7,
439         X_ATTRIBUTE8 => p_word_replacement_rec.ATTRIBUTE8,
440         X_ATTRIBUTE9 => p_word_replacement_rec.ATTRIBUTE9,
441         X_ATTRIBUTE10 => p_word_replacement_rec.ATTRIBUTE10,
442         X_ATTRIBUTE11 => p_word_replacement_rec.ATTRIBUTE11,
443         X_ATTRIBUTE12 => p_word_replacement_rec.ATTRIBUTE12,
444         X_ATTRIBUTE13 => p_word_replacement_rec.ATTRIBUTE13,
445         X_ATTRIBUTE14 => p_word_replacement_rec.ATTRIBUTE14,
446         X_ATTRIBUTE15 => p_word_replacement_rec.ATTRIBUTE15
447 	);
448 
449 END;
450 
451 /*===========================================================================+
452  | PROCEDURE                                                                 |
453  |              validate_word_replacement                             	     |
454  |                                                                           |
455  | DESCRIPTION                                                               |
456  |              Validates word replacements. Checks for:                     |
457  |                      uniqueness                                           |
458  |                      lookup types                                         |
459  |                      mandatory columns                                    |
460  |                      non-updateable fields                                |
461  |                      foreign key validations                              |
462  |                                                                           |
463  | SCOPE - PUBLIC                                                            |
464  |                                                                           |
465  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
466  |                                                                           |
467  | ARGUMENTS  : IN:                                                          |
468  |                      p_word_replacement_rec                               |
469  |                      create_update_flag                                   |
470  |              OUT:                                                         |
471  |          IN/ OUT:                                                         |
472  |                                                                           |
473  | RETURNS    : NONE                                                         |
474  |                                                                           |
475  | NOTES                                                                     |
476  |                                                                           |
477  | MODIFICATION HISTORY                                                      |
478  |    Rashmi Goyal   02-SEP-99  Created                                      |
479  |                                                                           |
480  +===========================================================================*/
481 
482 procedure validate_word_replacement(
483         p_word_replacement_rec 	IN      word_replacement_rec_type,
484         create_update_flag      IN      VARCHAR2,
485 	x_return_status		IN OUT	NOCOPY VARCHAR2
486 ) IS
487   CURSOR c_dup_rec (X_Original_Word IN VARCHAR2,
488                     X_Type          IN VARCHAR2
489                    )
490   IS
491     SELECT 1
492     FROM   hz_word_replacements
493     WHERE  original_word = X_Original_Word
494     AND    type = X_Type;
495   l_dup_rec   c_dup_rec%ROWTYPE;
496   l_count                 	NUMBER;
497 BEGIN
498 
499 --Check for mandatory, but updateable columns
500   IF (create_update_flag = 'C' AND (p_word_replacement_rec.original_word = FND_API.G_MISS_CHAR OR
501   p_word_replacement_rec.original_word IS NULL)) OR (create_update_flag = 'U' AND
502   p_word_replacement_rec.original_word IS NULL) THEN
503         FND_MESSAGE.SET_NAME('AR', 'HZ_API_MISSING_COLUMN');
504         FND_MESSAGE.SET_TOKEN('COLUMN', 'original_word');
505         FND_MSG_PUB.ADD;
506 	x_return_status := FND_API.G_RET_STS_ERROR;
507   END IF;
508 
509   IF (create_update_flag = 'C' AND (p_word_replacement_rec.type = FND_API.G_MISS_CHAR OR
510   p_word_replacement_rec.type IS NULL)) OR (create_update_flag = 'U' AND
511   p_word_replacement_rec.type IS NULL) THEN
512         FND_MESSAGE.SET_NAME('AR', 'HZ_API_MISSING_COLUMN');
513         FND_MESSAGE.SET_TOKEN('COLUMN', 'type');
514         FND_MSG_PUB.ADD;
515         x_return_status := FND_API.G_RET_STS_ERROR;
516   END IF;
517 
518 
519 -- Check for lookup values for type field
520   SELECT COUNT(*) INTO l_count
521   FROM   ar_lookups
522   WHERE  lookup_type = 'HZ_WORD_REPLACEMENT_TYPE'
523   AND    lookup_code = p_word_replacement_rec.type;
524 
525   IF l_count = 0 THEN
526                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_INVALID_LOOKUP');
527                 FND_MESSAGE.SET_TOKEN('COLUMN', 'type');
528                 FND_MESSAGE.SET_TOKEN('LOOKUP_TYPE', 'HZ_WORD_REPLACEMENT_TYPE');
529                 FND_MSG_PUB.ADD;
530                 x_return_status := FND_API.G_RET_STS_ERROR;
531   END IF;
532 
533 
534 --Check FK validations for country_code.
535     IF p_word_replacement_rec.country_code IS NOT NULL
536     AND p_word_replacement_rec.country_code <> FND_API.G_MISS_CHAR THEN
537       SELECT COUNT(*) INTO l_count
538       FROM fnd_territories
539       WHERE territory_code = p_word_replacement_rec.country_code;
540 
541       IF l_count = 0 THEN
542                 FND_MESSAGE.SET_NAME('AR', 'HZ_API_INVALID_FK');
543                 FND_MESSAGE.SET_TOKEN('FK', 'country_code');
544                 FND_MESSAGE.SET_TOKEN('COLUMN', 'territory_code');
545                 FND_MESSAGE.SET_TOKEN('TABLE', 'fnd_territories');
546                 FND_MSG_PUB.ADD;
547 	        x_return_status := FND_API.G_RET_STS_ERROR;
548       END IF;
549     END IF;
550 
551 -- Check for duplicate record
552     IF create_update_flag = 'C'
553     THEN
554       open c_dup_rec (p_word_replacement_rec.original_word, p_word_replacement_rec.type);
555       fetch c_dup_rec into l_dup_rec;
556       if c_dup_rec%FOUND then
557         fnd_message.set_name ('AR', 'HZ_MATCHING_RULE_EXISTS');
558         fnd_msg_pub.add;
559         x_return_status := FND_API.G_RET_STS_ERROR;
560       end if;
561     END IF;
562 END;
563 
564 /*===========================================================================+
565  | PROCEDURE                                                                 |
566  |              get_current_word_replacement                                 |
567  |                                                                           |
568  | DESCRIPTION                                                               |
569  |              Gets current record. 			                     |
570  |                                                                           |
571  | SCOPE - PRIVATE                                                           |
572  |                                                                           |
573  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
574  |                                                                           |
575  | ARGUMENTS  : IN:                                                          |
576  |                    p_original_word					     |
577  |                    p_type                                                 |
578  |              OUT:                                                         |
579  |                    x_word_replacement_rec				     |
580  |          IN/ OUT:                                                         |
581  |                                                                           |
582  | RETURNS    : NONE                                                         |
583  |                                                                           |
584  | NOTES                                                                     |
585  |                                                                           |
586  | MODIFICATION HISTORY                                                      |
587  |    Indrajit Sen   14-JUN-00  Created                                      |
588  |                                                                           |
589  +===========================================================================*/
590 
591 procedure get_current_word_replacement(
592         p_original_word         IN      VARCHAR2,
593         p_type                  IN      VARCHAR2,
594         x_word_replacement_rec  OUT     NOCOPY WORD_REPLACEMENT_REC_TYPE
595 ) IS
596                 LAST_UPDATE_DATE        DATE;
597                 LAST_UPDATED_BY         NUMBER;
598                 CREATION_DATE           DATE;
599                 CREATED_BY              NUMBER;
600                 LAST_UPDATE_LOGIN       NUMBER;
601 
602 BEGIN
603 
604   SELECT
605    ORIGINAL_WORD,
606    REPLACEMENT_WORD,
607    TYPE,
608    COUNTRY_CODE,
609    LAST_UPDATE_DATE,
610    LAST_UPDATED_BY,
611    CREATION_DATE,
612    CREATED_BY,
613    LAST_UPDATE_LOGIN,
614    ATTRIBUTE_CATEGORY,
615    ATTRIBUTE1,
616    ATTRIBUTE2,
617    ATTRIBUTE3,
618    ATTRIBUTE4,
619    ATTRIBUTE5,
620    ATTRIBUTE6,
621    ATTRIBUTE7,
622    ATTRIBUTE8,
623    ATTRIBUTE9,
624    ATTRIBUTE10,
625    ATTRIBUTE11,
626    ATTRIBUTE12,
627    ATTRIBUTE13,
628    ATTRIBUTE14,
629    ATTRIBUTE15
630   INTO
631    x_word_replacement_rec.ORIGINAL_WORD,
632    x_word_replacement_rec.REPLACEMENT_WORD,
633    x_word_replacement_rec.TYPE,
634    x_word_replacement_rec.COUNTRY_CODE,
635    LAST_UPDATE_DATE,
636    LAST_UPDATED_BY,
637    CREATION_DATE,
638    CREATED_BY,
639    LAST_UPDATE_LOGIN,
640    x_word_replacement_rec.ATTRIBUTE_CATEGORY,
641    x_word_replacement_rec.ATTRIBUTE1,
642    x_word_replacement_rec.ATTRIBUTE2,
643    x_word_replacement_rec.ATTRIBUTE3,
644    x_word_replacement_rec.ATTRIBUTE4,
645    x_word_replacement_rec.ATTRIBUTE5,
646    x_word_replacement_rec.ATTRIBUTE6,
647    x_word_replacement_rec.ATTRIBUTE7,
648    x_word_replacement_rec.ATTRIBUTE8,
649    x_word_replacement_rec.ATTRIBUTE9,
650    x_word_replacement_rec.ATTRIBUTE10,
651    x_word_replacement_rec.ATTRIBUTE11,
652    x_word_replacement_rec.ATTRIBUTE12,
653    x_word_replacement_rec.ATTRIBUTE13,
654    x_word_replacement_rec.ATTRIBUTE14,
655    x_word_replacement_rec.ATTRIBUTE15
656   FROM hz_word_replacements
657   WHERE original_word = p_original_word
658   AND   type = p_type;
659 
660 END;
661 
662 END HZ_WORD_REPLACEMENT_PUB;