18: -- Pre-reqs : None.
19: -- Parameters :
20: -- IN : p_api_version IN NUMBER Required
21: -- p_init_msg_list IN VARCHAR2 Optional
22: -- Default = FND_API.G_FALSE
23: -- p_commit IN VARCHAR2 Optional
24: -- Default = FND_API.G_FALSE
25: -- p_validation_level IN NUMBER Optional
26: -- Default = FND_API.G_VALID_LEVEL_FULL
20: -- IN : p_api_version IN NUMBER Required
21: -- p_init_msg_list IN VARCHAR2 Optional
22: -- Default = FND_API.G_FALSE
23: -- p_commit IN VARCHAR2 Optional
24: -- Default = FND_API.G_FALSE
25: -- p_validation_level IN NUMBER Optional
26: -- Default = FND_API.G_VALID_LEVEL_FULL
27: --
28: -- OUT : x_return_status OUT VARCHAR2(1)
22: -- Default = FND_API.G_FALSE
23: -- p_commit IN VARCHAR2 Optional
24: -- Default = FND_API.G_FALSE
25: -- p_validation_level IN NUMBER Optional
26: -- Default = FND_API.G_VALID_LEVEL_FULL
27: --
28: -- OUT : x_return_status OUT VARCHAR2(1)
29: -- x_msg_count OUT NUMBER
30: -- x_msg_data OUT VARCHAR2(2000)
39: -- End of comments
40: --=========================================================================
41: PROCEDURE create_revenue_class
42: ( p_api_version IN NUMBER,
43: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
44: p_commit IN VARCHAR2 := FND_API.G_FALSE,
45: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
46: x_return_status OUT NOCOPY VARCHAR2,
47: x_msg_count OUT NOCOPY NUMBER,
40: --=========================================================================
41: PROCEDURE create_revenue_class
42: ( p_api_version IN NUMBER,
43: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
44: p_commit IN VARCHAR2 := FND_API.G_FALSE,
45: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
46: x_return_status OUT NOCOPY VARCHAR2,
47: x_msg_count OUT NOCOPY NUMBER,
48: x_msg_data OUT NOCOPY VARCHAR2,
41: PROCEDURE create_revenue_class
42: ( p_api_version IN NUMBER,
43: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
44: p_commit IN VARCHAR2 := FND_API.G_FALSE,
45: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
46: x_return_status OUT NOCOPY VARCHAR2,
47: x_msg_count OUT NOCOPY NUMBER,
48: x_msg_data OUT NOCOPY VARCHAR2,
49: x_loading_status OUT NOCOPY VARCHAR2,
72:
73: -- Standard Start of API savepoint
74: SAVEPOINT Create_Revenue_Class;
75: -- Standard call to check for call compatibility.
76: IF NOT FND_API.Compatible_API_Call ( l_api_version,
77: p_api_version,
78: l_api_name,
79: G_PKG_NAME )
80: THEN
77: p_api_version,
78: l_api_name,
79: G_PKG_NAME )
80: THEN
81: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
82: END IF;
83:
84: -- Initialize message list if p_init_msg_list is set to TRUE.
85: IF FND_API.to_Boolean( p_init_msg_list )
81: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
82: END IF;
83:
84: -- Initialize message list if p_init_msg_list is set to TRUE.
85: IF FND_API.to_Boolean( p_init_msg_list )
86: THEN
87: FND_MSG_PUB.initialize;
88: END IF;
89:
87: FND_MSG_PUB.initialize;
88: END IF;
89:
90: -- Initialize API return status to success
91: x_return_status := FND_API.G_RET_STS_SUCCESS;
92: x_loading_status := 'CN_INSERTED';
93:
94: -- API body
95: if p_revenue_class_rec.name is NULL THEN
98: fnd_message.set_name('CN', 'CN_REV_NAME_NOT_NULL');
99: fnd_msg_pub.add;
100: END IF;
101: x_loading_status := 'CN_REV_NAME_NOT_NULL';
102: RAISE FND_API.G_EXC_ERROR;
103: END IF;
104:
105: -- Duplicate Check
106: l_count := 0;
115: fnd_message.set_name('CN', 'CN_REV_CLASS_DUPLICATE');
116: fnd_msg_pub.add;
117: END IF;
118: x_loading_status := 'CN_REV_CLASS_DUPLICATE';
119: RAISE FND_API.G_EXC_ERROR;
120: END IF;
121:
122:
123:
136:
137: -- End of API body.
138:
139: -- Standard check of p_commit.
140: IF FND_API.To_Boolean( p_commit )
141: THEN
142: COMMIT WORK;
143: END IF;
144:
145: FND_MSG_PUB.Count_And_Get
146: (
147: p_count => x_msg_count ,
148: p_data => x_msg_data ,
149: p_encoded => FND_API.G_FALSE
150: );
151: EXCEPTION
152: WHEN FND_API.G_EXC_ERROR THEN
153: ROLLBACK TO Create_Revenue_Class;
148: p_data => x_msg_data ,
149: p_encoded => FND_API.G_FALSE
150: );
151: EXCEPTION
152: WHEN FND_API.G_EXC_ERROR THEN
153: ROLLBACK TO Create_Revenue_Class;
154: x_return_status := FND_API.G_RET_STS_ERROR ;
155: FND_MSG_PUB.Count_And_Get
156: (
150: );
151: EXCEPTION
152: WHEN FND_API.G_EXC_ERROR THEN
153: ROLLBACK TO Create_Revenue_Class;
154: x_return_status := FND_API.G_RET_STS_ERROR ;
155: FND_MSG_PUB.Count_And_Get
156: (
157: p_count => x_msg_count ,
158: p_data => x_msg_data ,
155: FND_MSG_PUB.Count_And_Get
156: (
157: p_count => x_msg_count ,
158: p_data => x_msg_data ,
159: p_encoded => FND_API.G_FALSE
160: );
161: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
162: ROLLBACK TO Create_Revenue_Class;
163: x_loading_status := 'UNEXPECTED_ERR';
157: p_count => x_msg_count ,
158: p_data => x_msg_data ,
159: p_encoded => FND_API.G_FALSE
160: );
161: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
162: ROLLBACK TO Create_Revenue_Class;
163: x_loading_status := 'UNEXPECTED_ERR';
164: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
165: FND_MSG_PUB.Count_And_Get
160: );
161: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
162: ROLLBACK TO Create_Revenue_Class;
163: x_loading_status := 'UNEXPECTED_ERR';
164: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
165: FND_MSG_PUB.Count_And_Get
166: (
167: p_count => x_msg_count ,
168: p_data => x_msg_data ,
165: FND_MSG_PUB.Count_And_Get
166: (
167: p_count => x_msg_count ,
168: p_data => x_msg_data ,
169: p_encoded => FND_API.G_FALSE
170: );
171: WHEN OTHERS THEN
172: ROLLBACK TO Create_Revenue_Class;
173: x_loading_status := 'UNEXPECTED_ERR';
170: );
171: WHEN OTHERS THEN
172: ROLLBACK TO Create_Revenue_Class;
173: x_loading_status := 'UNEXPECTED_ERR';
174: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
175: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
176: THEN
177: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,l_api_name );
178: END IF;
179: FND_MSG_PUB.Count_And_Get
180: (
181: p_count => x_msg_count ,
182: p_data => x_msg_data ,
183: p_encoded => FND_API.G_FALSE
184: );
185: END Create_Revenue_Class;
186: --=========================================================================
187: -- Start of comments
193: -- Pre-reqs : None.
194: -- Parameters :
195: -- IN : p_api_version IN NUMBER Required
196: -- p_init_msg_list IN VARCHAR2 Optional
197: -- Default = FND_API.G_FALSE
198: -- p_commit IN VARCHAR2 Optional
199: -- Default = FND_API.G_FALSE
200: -- p_validation_level IN NUMBER Optional
201: -- Default = FND_API.G_VALID_LEVEL_FULL
195: -- IN : p_api_version IN NUMBER Required
196: -- p_init_msg_list IN VARCHAR2 Optional
197: -- Default = FND_API.G_FALSE
198: -- p_commit IN VARCHAR2 Optional
199: -- Default = FND_API.G_FALSE
200: -- p_validation_level IN NUMBER Optional
201: -- Default = FND_API.G_VALID_LEVEL_FULL
202: --
203: -- OUT : x_return_status OUT VARCHAR2(1)
197: -- Default = FND_API.G_FALSE
198: -- p_commit IN VARCHAR2 Optional
199: -- Default = FND_API.G_FALSE
200: -- p_validation_level IN NUMBER Optional
201: -- Default = FND_API.G_VALID_LEVEL_FULL
202: --
203: -- OUT : x_return_status OUT VARCHAR2(1)
204: -- x_msg_count OUT NUMBER
205: -- x_msg_data OUT VARCHAR2(2000)
215: --=========================================================================
216:
217: PROCEDURE Update_Revenue_class
218: ( p_api_version IN NUMBER,
219: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
220: p_commit IN VARCHAR2 := FND_API.G_FALSE,
221: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
222: x_return_status OUT NOCOPY VARCHAR2,
223: x_msg_count OUT NOCOPY NUMBER,
216:
217: PROCEDURE Update_Revenue_class
218: ( p_api_version IN NUMBER,
219: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
220: p_commit IN VARCHAR2 := FND_API.G_FALSE,
221: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
222: x_return_status OUT NOCOPY VARCHAR2,
223: x_msg_count OUT NOCOPY NUMBER,
224: x_msg_data OUT NOCOPY VARCHAR2,
217: PROCEDURE Update_Revenue_class
218: ( p_api_version IN NUMBER,
219: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
220: p_commit IN VARCHAR2 := FND_API.G_FALSE,
221: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
222: x_return_status OUT NOCOPY VARCHAR2,
223: x_msg_count OUT NOCOPY NUMBER,
224: x_msg_data OUT NOCOPY VARCHAR2,
225: x_loading_status OUT NOCOPY VARCHAR2,
251:
252: -- Standard Start of API savepoint
253: SAVEPOINT Update_Revenue_Class;
254: -- Standard call to check for call compatibility.
255: IF NOT FND_API.Compatible_API_Call ( l_api_version,
256: p_api_version,
257: l_api_name,
258: G_PKG_NAME )
259: THEN
256: p_api_version,
257: l_api_name,
258: G_PKG_NAME )
259: THEN
260: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
261: END IF;
262:
263: -- Initialize message list if p_init_msg_list is set to TRUE.
264: IF FND_API.to_Boolean( p_init_msg_list )
260: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
261: END IF;
262:
263: -- Initialize message list if p_init_msg_list is set to TRUE.
264: IF FND_API.to_Boolean( p_init_msg_list )
265: THEN
266: FND_MSG_PUB.initialize;
267: END IF;
268:
266: FND_MSG_PUB.initialize;
267: END IF;
268:
269: -- Initialize API return status to success
270: x_return_status := FND_API.G_RET_STS_SUCCESS;
271: x_loading_status := 'CN_UPDATED';
272:
273: pold_revenue_class_rec.revenue_class_id := p_revenue_class_rec.revenue_class_id;
274:
278: fnd_message.set_name('CN', 'CN_REV_CLS_NOT_NULL');
279: fnd_msg_pub.add;
280: END IF;
281: x_loading_status := 'CN_REV_CLS_NOT_NULL';
282: RAISE FND_API.G_EXC_ERROR;
283: END IF;
284:
285: if p_revenue_class_rec.revenue_Class_id is null THEN
286: IF fnd_msg_pub.check_msg_level (fnd_msg_pub.g_msg_lvl_error)
288: fnd_message.set_name('CN', 'CN_REV_CLS_NOT_NULL');
289: fnd_msg_pub.add;
290: END IF;
291: x_loading_status := 'CN_REV_CLS_NOT_NULL';
292: RAISE FND_API.G_EXC_ERROR;
293: END IF;
294:
295:
296: -- Duplicate Check
306: fnd_message.set_name('CN', 'CN_REV_CLASS_DUPLICATE');
307: fnd_msg_pub.add;
308: END IF;
309: x_loading_status := 'CN_REV_CLASS_DUPLICATE';
310: RAISE FND_API.G_EXC_ERROR;
311: END IF;
312:
313:
314: -- check if the object version number is the same
325: fnd_msg_pub.add;
326: END IF;
327:
328: x_loading_status := 'CN_INVALID_OBJECT_VERSION';
329: RAISE FND_API.G_EXC_ERROR;
330:
331: end if;
332: */
333:
345:
346:
347: -- End of API body.
348: -- Standard check of p_commit.
349: IF FND_API.To_Boolean( p_commit )
350: THEN
351: COMMIT WORK;
352: END IF;
353:
356: FND_MSG_PUB.Count_And_Get
357: (
358: p_count => x_msg_count ,
359: p_data => x_msg_data ,
360: p_encoded => FND_API.G_FALSE
361: );
362:
363: EXCEPTION
364: WHEN FND_API.G_EXC_ERROR THEN
360: p_encoded => FND_API.G_FALSE
361: );
362:
363: EXCEPTION
364: WHEN FND_API.G_EXC_ERROR THEN
365: ROLLBACK TO Update_Revenue_Class;
366: x_return_status := FND_API.G_RET_STS_ERROR ;
367:
368: FND_MSG_PUB.Count_And_Get
362:
363: EXCEPTION
364: WHEN FND_API.G_EXC_ERROR THEN
365: ROLLBACK TO Update_Revenue_Class;
366: x_return_status := FND_API.G_RET_STS_ERROR ;
367:
368: FND_MSG_PUB.Count_And_Get
369: (
370: p_count => x_msg_count ,
368: FND_MSG_PUB.Count_And_Get
369: (
370: p_count => x_msg_count ,
371: p_data => x_msg_data ,
372: p_encoded => FND_API.G_FALSE
373: );
374:
375: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
376: ROLLBACK TO Update_Revenue_Class;
371: p_data => x_msg_data ,
372: p_encoded => FND_API.G_FALSE
373: );
374:
375: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
376: ROLLBACK TO Update_Revenue_Class;
377: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
378: FND_MSG_PUB.Count_And_Get
379: (
373: );
374:
375: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
376: ROLLBACK TO Update_Revenue_Class;
377: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
378: FND_MSG_PUB.Count_And_Get
379: (
380: p_count => x_msg_count ,
381: p_data => x_msg_data ,
378: FND_MSG_PUB.Count_And_Get
379: (
380: p_count => x_msg_count ,
381: p_data => x_msg_data ,
382: p_encoded => FND_API.G_FALSE
383: );
384:
385: WHEN OTHERS THEN
386: ROLLBACK TO Update_Revenue_Class;
383: );
384:
385: WHEN OTHERS THEN
386: ROLLBACK TO Update_Revenue_Class;
387: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
388: IF FND_MSG_PUB.Check_Msg_Level
389: (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
390: THEN
391: FND_MSG_PUB.Add_Exc_Msg
397: FND_MSG_PUB.Count_And_Get
398: (
399: p_count => x_msg_count ,
400: p_data => x_msg_data ,
401: p_encoded => FND_API.G_FALSE
402: );
403:
404: END;
405: --=========================================================================
410: -- Pre-reqs : None.
411: -- Parameters :
412: -- IN : p_api_version IN NUMBER Required
413: -- p_init_msg_list IN VARCHAR2 Optional
414: -- Default = FND_API.G_FALSE
415: -- p_commit IN VARCHAR2 Optional
416: -- Default = FND_API.G_FALSE
417: -- p_validation_level IN NUMBER Optional
418: -- Default = FND_API.G_VALID_LEVEL_FULL
412: -- IN : p_api_version IN NUMBER Required
413: -- p_init_msg_list IN VARCHAR2 Optional
414: -- Default = FND_API.G_FALSE
415: -- p_commit IN VARCHAR2 Optional
416: -- Default = FND_API.G_FALSE
417: -- p_validation_level IN NUMBER Optional
418: -- Default = FND_API.G_VALID_LEVEL_FULL
419: -- p_ruleset_rec_type IN
420: --
414: -- Default = FND_API.G_FALSE
415: -- p_commit IN VARCHAR2 Optional
416: -- Default = FND_API.G_FALSE
417: -- p_validation_level IN NUMBER Optional
418: -- Default = FND_API.G_VALID_LEVEL_FULL
419: -- p_ruleset_rec_type IN
420: --
421: -- OUT : x_return_status OUT VARCHAR2(1)
422: -- x_msg_count OUT NUMBER
431: -- End of comments
432: --=========================================================================
433: PROCEDURE Delete_Revenue_Class
434: ( p_api_version IN NUMBER,
435: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
436: p_commit IN VARCHAR2 := FND_API.G_FALSE,
437: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
438: x_return_status OUT NOCOPY VARCHAR2,
439: x_msg_count OUT NOCOPY NUMBER,
432: --=========================================================================
433: PROCEDURE Delete_Revenue_Class
434: ( p_api_version IN NUMBER,
435: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
436: p_commit IN VARCHAR2 := FND_API.G_FALSE,
437: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
438: x_return_status OUT NOCOPY VARCHAR2,
439: x_msg_count OUT NOCOPY NUMBER,
440: x_msg_data OUT NOCOPY VARCHAR2,
433: PROCEDURE Delete_Revenue_Class
434: ( p_api_version IN NUMBER,
435: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
436: p_commit IN VARCHAR2 := FND_API.G_FALSE,
437: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
438: x_return_status OUT NOCOPY VARCHAR2,
439: x_msg_count OUT NOCOPY NUMBER,
440: x_msg_data OUT NOCOPY VARCHAR2,
441: x_loading_status OUT NOCOPY VARCHAR2,
472:
473: -- Standard Start of API savepoint
474: SAVEPOINT Delete_Revenue_class;
475: -- Standard call to check for call compatibility.
476: IF NOT FND_API.Compatible_API_Call ( l_api_version,
477: p_api_version,
478: l_api_name,
479: G_PKG_NAME )
480: THEN
477: p_api_version,
478: l_api_name,
479: G_PKG_NAME )
480: THEN
481: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
482: END IF;
483:
484: -- Initialize message list if p_init_msg_list is set to TRUE.
485: IF FND_API.to_Boolean( p_init_msg_list )
481: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
482: END IF;
483:
484: -- Initialize message list if p_init_msg_list is set to TRUE.
485: IF FND_API.to_Boolean( p_init_msg_list )
486: THEN
487: FND_MSG_PUB.initialize;
488: END IF;
489:
487: FND_MSG_PUB.initialize;
488: END IF;
489:
490: -- Initialize API return status to success
491: x_return_status := FND_API.G_RET_STS_SUCCESS;
492:
493: --
494: -- get revenue class
495: --
551: fnd_message.set_token('HIERARCHY_COUNT', l_hierarchy_count);
552: fnd_msg_pub.add;
553: END IF;
554: x_loading_status := 'REV_CLS_EXISTS_SW';
555: RAISE FND_API.G_EXC_ERROR;
556: END IF;
557:
558: -- delete the revenue class
559:
561:
562: -- End of API body.
563:
564: -- Standard check of p_commit.
565: IF FND_API.To_Boolean( p_commit )
566: THEN
567: COMMIT WORK;
568: END IF;
569:
571: FND_MSG_PUB.Count_And_Get
572: (
573: p_count => x_msg_count ,
574: p_data => x_msg_data ,
575: p_encoded => FND_API.G_FALSE
576: );
577:
578: EXCEPTION
579: WHEN FND_API.G_EXC_ERROR THEN
575: p_encoded => FND_API.G_FALSE
576: );
577:
578: EXCEPTION
579: WHEN FND_API.G_EXC_ERROR THEN
580: ROLLBACK TO Delete_Revenue_Class;
581: x_return_status := FND_API.G_RET_STS_ERROR ;
582: FND_MSG_PUB.Count_And_Get
583: (
577:
578: EXCEPTION
579: WHEN FND_API.G_EXC_ERROR THEN
580: ROLLBACK TO Delete_Revenue_Class;
581: x_return_status := FND_API.G_RET_STS_ERROR ;
582: FND_MSG_PUB.Count_And_Get
583: (
584: p_count => x_msg_count ,
585: p_data => x_msg_data ,
582: FND_MSG_PUB.Count_And_Get
583: (
584: p_count => x_msg_count ,
585: p_data => x_msg_data ,
586: p_encoded => FND_API.G_FALSE
587: );
588:
589: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
590: ROLLBACK TO Delete_Revenue_Class;
585: p_data => x_msg_data ,
586: p_encoded => FND_API.G_FALSE
587: );
588:
589: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
590: ROLLBACK TO Delete_Revenue_Class;
591: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
592:
593: FND_MSG_PUB.Count_And_Get
587: );
588:
589: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
590: ROLLBACK TO Delete_Revenue_Class;
591: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
592:
593: FND_MSG_PUB.Count_And_Get
594: (
595: p_count => x_msg_count ,
593: FND_MSG_PUB.Count_And_Get
594: (
595: p_count => x_msg_count ,
596: p_data => x_msg_data ,
597: p_encoded => FND_API.G_FALSE
598: );
599:
600: WHEN OTHERS THEN
601: ROLLBACK TO Delete_Revenue_Class;
598: );
599:
600: WHEN OTHERS THEN
601: ROLLBACK TO Delete_Revenue_Class;
602: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
603: IF FND_MSG_PUB.Check_Msg_Level
604: (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
605: THEN
606: FND_MSG_PUB.Add_Exc_Msg
612: FND_MSG_PUB.Count_And_Get
613: (
614: p_count => x_msg_count ,
615: p_data => x_msg_data ,
616: p_encoded => FND_API.G_FALSE
617: );
618:
619: END;
620: