67: -- Standard Start of API savepoint
68: SAVEPOINT CREATE_RELATIONSHIP_PUB;
69:
70: -- Standard call to check for call compatibility.
71: IF NOT FND_API.Compatible_API_Call (l_api_version ,
72: p_api_version ,
73: l_api_name ,
74: G_PKG_NAME )
75: THEN
72: p_api_version ,
73: l_api_name ,
74: G_PKG_NAME )
75: THEN
76: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
77: END IF;
78:
79: -- Initialize message list if p_init_msg_list is set to TRUE.
80: IF FND_API.to_Boolean( p_init_msg_list ) THEN
76: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
77: END IF;
78:
79: -- Initialize message list if p_init_msg_list is set to TRUE.
80: IF FND_API.to_Boolean( p_init_msg_list ) THEN
81: FND_MSG_PUB.initialize;
82: END IF;
83:
84: -- Initialize API return status to success
81: FND_MSG_PUB.initialize;
82: END IF;
83:
84: -- Initialize API return status to success
85: x_return_status := FND_API.G_RET_STS_SUCCESS;
86:
87: -- API Body
88:
89: IF p_validation_level > FND_API.G_VALID_LEVEL_NONE THEN
85: x_return_status := FND_API.G_RET_STS_SUCCESS;
86:
87: -- API Body
88:
89: IF p_validation_level > FND_API.G_VALID_LEVEL_NONE THEN
90: VALIDATE_RELATIONSHIP
91: ( p_api_version => 1.0,
92: x_return_status => l_return_status,
93: x_msg_count => l_msg_count,
100: P_CHILD_EVENT_KEY => p_child_event_key
101: );
102:
103: -- If any errors happen abort API.
104: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
105: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
106: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
107: RAISE FND_API.G_EXC_ERROR;
108: END IF;
101: );
102:
103: -- If any errors happen abort API.
104: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
105: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
106: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
107: RAISE FND_API.G_EXC_ERROR;
108: END IF;
109:
102:
103: -- If any errors happen abort API.
104: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
105: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
106: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
107: RAISE FND_API.G_EXC_ERROR;
108: END IF;
109:
110: END IF; --end of validation
103: -- If any errors happen abort API.
104: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
105: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
106: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
107: RAISE FND_API.G_EXC_ERROR;
108: END IF;
109:
110: END IF; --end of validation
111:
151:
152: -- End of API Body
153:
154: -- Standard check of p_commit.
155: IF FND_API.To_Boolean( p_commit ) THEN
156: COMMIT;
157: END IF;
158:
159: -- Standard call to get message count and if count is 1,
163: p_data => x_msg_data
164: );
165:
166: EXCEPTION
167: WHEN FND_API.G_EXC_ERROR THEN
168: x_return_status := FND_API.G_RET_STS_ERROR ;
169: FND_MSG_PUB.Count_And_Get
170: ( p_count => x_msg_count ,
171: p_data => x_msg_data
164: );
165:
166: EXCEPTION
167: WHEN FND_API.G_EXC_ERROR THEN
168: x_return_status := FND_API.G_RET_STS_ERROR ;
169: FND_MSG_PUB.Count_And_Get
170: ( p_count => x_msg_count ,
171: p_data => x_msg_data
172: );
170: ( p_count => x_msg_count ,
171: p_data => x_msg_data
172: );
173:
174: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
175: ROLLBACK TO CREATE_RELATIONSHIP_PUB;
176: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
177: FND_MSG_PUB.Count_And_Get
178: ( p_count => x_msg_count ,
172: );
173:
174: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
175: ROLLBACK TO CREATE_RELATIONSHIP_PUB;
176: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
177: FND_MSG_PUB.Count_And_Get
178: ( p_count => x_msg_count ,
179: p_data => x_msg_data
180: );
180: );
181:
182: WHEN OTHERS THEN
183: ROLLBACK TO CREATE_RELATIONSHIP_PUB;
184: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
185: x_relationship_id := null;
186:
187: IF FND_MSG_PUB.Check_Msg_Level
188: (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
233: CHILD_ERECORD_ID_ERROR EXCEPTION;
234: CHILD_EVENT_ERROR EXCEPTION;
235: BEGIN
236: -- Standard call to check for call compatibility.
237: IF NOT FND_API.Compatible_API_Call (l_api_version ,
238: p_api_version ,
239: l_api_name ,
240: G_PKG_NAME )
241: THEN
238: p_api_version ,
239: l_api_name ,
240: G_PKG_NAME )
241: THEN
242: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
243: END IF;
244:
245: -- Initialize message list if p_init_msg_list is set to TRUE.
246: IF FND_API.to_Boolean( p_init_msg_list ) THEN
242: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
243: END IF;
244:
245: -- Initialize message list if p_init_msg_list is set to TRUE.
246: IF FND_API.to_Boolean( p_init_msg_list ) THEN
247: FND_MSG_PUB.initialize;
248: END IF;
249:
250: -- Initialize API return status to success
247: FND_MSG_PUB.initialize;
248: END IF;
249:
250: -- Initialize API return status to success
251: x_return_status := FND_API.G_RET_STS_SUCCESS;
252:
253: -- API Body
254:
255: /* SKARIMIS Bug fix 3134883 */
268: p_erecord_id => p_parent_erecord_id
269: );
270:
271: -- If any errors happen abort API.
272: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
273: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
274: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
275: RAISE PARENT_ERECORD_ID_ERROR;
276: END IF;
269: );
270:
271: -- If any errors happen abort API.
272: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
273: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
274: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
275: RAISE PARENT_ERECORD_ID_ERROR;
276: END IF;
277:
270:
271: -- If any errors happen abort API.
272: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
273: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
274: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
275: RAISE PARENT_ERECORD_ID_ERROR;
276: END IF;
277:
278: -- Now validate that the parent event name and event key are
301: p_erecord_id => p_child_erecord_id
302: );
303:
304: -- If any errors happen abort API.
305: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
306: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
307: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
308: RAISE CHILD_ERECORD_ID_ERROR;
309: END IF;
302: );
303:
304: -- If any errors happen abort API.
305: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
306: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
307: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
308: RAISE CHILD_ERECORD_ID_ERROR;
309: END IF;
310:
303:
304: -- If any errors happen abort API.
305: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
306: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
307: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
308: RAISE CHILD_ERECORD_ID_ERROR;
309: END IF;
310:
311: -- Now validate that the child event name and event key are
335: );
336:
337: EXCEPTION
338: WHEN PARENT_ERECORD_ID_ERROR THEN
339: x_return_status := FND_API.G_RET_STS_ERROR ;
340:
341: fnd_message.set_name('EDR','EDR_VAL_INVALID_PARENT_ID');
342: fnd_message.set_token('ERECORD_ID', p_parent_erecord_id);
343: fnd_message.set_token('EVENT_NAME', p_parent_event_name);
357: );
358:
359:
360: WHEN INVALID_EVENT_ERROR THEN
361: x_return_status := FND_API.G_RET_STS_ERROR ;
362: fnd_message.set_name('EDR','EDR_VAL_INVALID_EVENT');
363: l_mesg_text := fnd_message.get();
364:
365: FND_MSG_PUB.Add_Exc_Msg
372: ( p_count => x_msg_count ,
373: p_data => x_msg_data
374: );
375: WHEN PARENT_EVENT_ERROR THEN
376: x_return_status := FND_API.G_RET_STS_ERROR ;
377:
378: fnd_message.set_name('EDR','EDR_VAL_INVALID_PARENT_EVENT');
379: fnd_message.set_token('EVENT_NAME', l_event_name);
380: fnd_message.set_token('EVENT_KEY', l_event_key);
391: p_data => x_msg_data
392: );
393:
394: WHEN CHILD_ERECORD_ID_ERROR THEN
395: x_return_status := FND_API.G_RET_STS_ERROR ;
396:
397: fnd_message.set_name('EDR','EDR_VAL_INVALID_CHILD_ID');
398: fnd_message.set_token('ERECORD_ID', p_child_erecord_id);
399: l_mesg_text := fnd_message.get();
410: );
411:
412:
413: WHEN CHILD_EVENT_ERROR THEN
414: x_return_status := FND_API.G_RET_STS_ERROR ;
415:
416: fnd_message.set_name('EDR','EDR_VAL_INVALID_CHILD_EVENT');
417: fnd_message.set_token('EVENT_NAME', l_event_name);
418: fnd_message.set_token('EVENT_KEY', l_event_key);
428: ( p_count => x_msg_count ,
429: p_data => x_msg_data
430: );
431:
432: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
433: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
434:
435: FND_MSG_PUB.Count_And_Get
436: ( p_count => x_msg_count ,
429: p_data => x_msg_data
430: );
431:
432: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
433: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
434:
435: FND_MSG_PUB.Count_And_Get
436: ( p_count => x_msg_count ,
437: p_data => x_msg_data
437: p_data => x_msg_data
438: );
439:
440: WHEN OTHERS THEN
441: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
442:
443: IF FND_MSG_PUB.Check_Msg_Level
444: (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
445: THEN