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,
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,
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:
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)
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
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.
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,
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.
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
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,
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);
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
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,
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);
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
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;
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;
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,
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,
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:
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)
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
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.
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,
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.
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
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,
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);
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
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,
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);
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
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;
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;
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.
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:
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;
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.
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:
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.
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,
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,
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');
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
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');
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
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.
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:
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
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: