57: i NUMBER;
58:
59: BEGIN
60:
61: X_return_status := FND_API.G_RET_STS_SUCCESS;
62:
63: OPEN v1; FETCH v1 INTO v1rec; CLOSE v1;
64: OPEN v2; FETCH v2 INTO v2rec; CLOSE v2;
65: OPEN v3; FETCH v3 INTO v3rec; CLOSE v3;
71: IF ( v1rec.project_id = v2rec.project_id ) THEN
72:
73: FND_MESSAGE.set_name('PJM' , 'GEN-SEIBAN EXISTS');
74: FND_MSG_PUB.add;
75: X_return_status := FND_API.G_RET_STS_ERROR;
76:
77: ELSE
78:
79: IF ( v1rec.project_id is not null ) THEN
78:
79: IF ( v1rec.project_id is not null ) THEN
80: FND_MESSAGE.set_name('PJM' , 'FORM-DUPLICATE PROJECT NUM');
81: FND_MSG_PUB.add;
82: X_return_status := FND_API.G_RET_STS_ERROR;
83: END IF;
84:
85: IF ( v2rec.project_id is not null ) THEN
86: FND_MESSAGE.set_name('PJM' , 'FORM-DUPLICATE PROJECT NAME');
84:
85: IF ( v2rec.project_id is not null ) THEN
86: FND_MESSAGE.set_name('PJM' , 'FORM-DUPLICATE PROJECT NAME');
87: FND_MSG_PUB.add;
88: X_return_status := FND_API.G_RET_STS_ERROR;
89: END IF;
90:
91: END IF;
92:
98: FND_MESSAGE.set_name('PJM' , 'GEN-INVALID VALUE');
99: FND_MESSAGE.set_token('NAME' , 'TOKEN-PLANNING GROUP' , TRUE);
100: FND_MESSAGE.set_token('VALUE' , P_planning_group);
101: FND_MSG_PUB.add;
102: X_return_status := FND_API.G_RET_STS_ERROR;
103:
104: END IF;
105:
106: --
111: FND_MESSAGE.set_name('PJM' , 'GEN-INVALID VALUE');
112: FND_MESSAGE.set_token('NAME' , 'TOKEN-OPERATING UNIT' , TRUE);
113: FND_MESSAGE.set_token('VALUE' , P_operating_unit);
114: FND_MSG_PUB.add;
115: X_return_status := FND_API.G_RET_STS_ERROR;
116:
117: END IF;
118:
119: --
147: FND_MSG_PUB.add_exc_msg
148: ( p_pkg_name => G_PKG_NAME
149: , p_procedure_name => 'VALIDATE_DATA'
150: , p_error_text => FND_FLEX_DESCVAL.error_message );
151: X_return_status := FND_API.G_RET_STS_ERROR;
152:
153: END IF;
154:
155: EXCEPTION
156: WHEN OTHERS THEN
157: FND_MSG_PUB.add_exc_msg
158: ( p_pkg_name => G_PKG_NAME
159: , p_procedure_name => 'VALIDATE_DATA' );
160: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
161:
162: END Validate_Data;
163:
164:
199:
200: --
201: -- Check API incompatibility
202: --
203: IF NOT FND_API.compatible_api_call( l_api_version
204: , P_api_version
205: , l_api_name
206: , G_PKG_NAME )
207: THEN
204: , P_api_version
205: , l_api_name
206: , G_PKG_NAME )
207: THEN
208: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
209: END IF;
210:
211: --
212: -- Initialize the message table if requested.
210:
211: --
212: -- Initialize the message table if requested.
213: --
214: IF FND_API.to_boolean( P_init_msg_list ) THEN
215: FND_MSG_PUB.initialize;
216: END IF;
217:
218: --
217:
218: --
219: -- Set API return status to success
220: --
221: X_return_status := FND_API.G_RET_STS_SUCCESS;
222:
223: --
224: -- Data Validation
225: --
234:
235: --
236: -- If anything happens, abort API
237: --
238: IF ( X_return_status = FND_API.G_RET_STS_ERROR ) THEN
239: RAISE FND_API.G_EXC_ERROR;
240: ELSIF ( X_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
241: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
242: END IF;
235: --
236: -- If anything happens, abort API
237: --
238: IF ( X_return_status = FND_API.G_RET_STS_ERROR ) THEN
239: RAISE FND_API.G_EXC_ERROR;
240: ELSIF ( X_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
241: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
242: END IF;
243:
236: -- If anything happens, abort API
237: --
238: IF ( X_return_status = FND_API.G_RET_STS_ERROR ) THEN
239: RAISE FND_API.G_EXC_ERROR;
240: ELSIF ( X_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
241: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
242: END IF;
243:
244: SELECT pa_projects_s.nextval INTO l_project_id FROM dual;
237: --
238: IF ( X_return_status = FND_API.G_RET_STS_ERROR ) THEN
239: RAISE FND_API.G_EXC_ERROR;
240: ELSIF ( X_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
241: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
242: END IF;
243:
244: SELECT pa_projects_s.nextval INTO l_project_id FROM dual;
245:
333: l_param_data.attr15 := P_org_list(i).attr15;
334:
335: PJM_PROJECT_PARAM_PUB.create_project_parameter
336: ( P_api_version => P_api_version
337: , P_init_msg_list => FND_API.G_FALSE
338: , P_commit => FND_API.G_FALSE
339: , X_return_status => X_return_status
340: , X_msg_count => X_msg_count
341: , X_msg_data => X_msg_data
334:
335: PJM_PROJECT_PARAM_PUB.create_project_parameter
336: ( P_api_version => P_api_version
337: , P_init_msg_list => FND_API.G_FALSE
338: , P_commit => FND_API.G_FALSE
339: , X_return_status => X_return_status
340: , X_msg_count => X_msg_count
341: , X_msg_data => X_msg_data
342: , P_param_data => l_param_data );
340: , X_msg_count => X_msg_count
341: , X_msg_data => X_msg_data
342: , P_param_data => l_param_data );
343:
344: IF ( X_return_status = FND_API.G_RET_STS_ERROR ) THEN
345: RAISE FND_API.G_EXC_ERROR;
346: ELSIF ( X_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
347: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
348: END IF;
341: , X_msg_data => X_msg_data
342: , P_param_data => l_param_data );
343:
344: IF ( X_return_status = FND_API.G_RET_STS_ERROR ) THEN
345: RAISE FND_API.G_EXC_ERROR;
346: ELSIF ( X_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
347: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
348: END IF;
349:
342: , P_param_data => l_param_data );
343:
344: IF ( X_return_status = FND_API.G_RET_STS_ERROR ) THEN
345: RAISE FND_API.G_EXC_ERROR;
346: ELSIF ( X_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
347: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
348: END IF;
349:
350:
343:
344: IF ( X_return_status = FND_API.G_RET_STS_ERROR ) THEN
345: RAISE FND_API.G_EXC_ERROR;
346: ELSIF ( X_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
347: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
348: END IF;
349:
350:
351: EXIT WHEN i = P_org_list.LAST;
353: END LOOP;
354:
355: PJM_PROJECT_PARAM_PUB.update_planning_group
356: ( P_api_version => P_api_version
357: , P_init_msg_list => FND_API.G_FALSE
358: , P_commit => FND_API.G_FALSE
359: , X_return_status => X_return_status
360: , X_msg_count => X_msg_count
361: , X_msg_data => X_msg_data
354:
355: PJM_PROJECT_PARAM_PUB.update_planning_group
356: ( P_api_version => P_api_version
357: , P_init_msg_list => FND_API.G_FALSE
358: , P_commit => FND_API.G_FALSE
359: , X_return_status => X_return_status
360: , X_msg_count => X_msg_count
361: , X_msg_data => X_msg_data
362: , P_project_id => l_project_id
361: , X_msg_data => X_msg_data
362: , P_project_id => l_project_id
363: , P_planning_group => P_planning_group );
364:
365: IF ( X_return_status = FND_API.G_RET_STS_ERROR ) THEN
366: RAISE FND_API.G_EXC_ERROR;
367: ELSIF ( X_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
368: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
369: END IF;
362: , P_project_id => l_project_id
363: , P_planning_group => P_planning_group );
364:
365: IF ( X_return_status = FND_API.G_RET_STS_ERROR ) THEN
366: RAISE FND_API.G_EXC_ERROR;
367: ELSIF ( X_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
368: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
369: END IF;
370:
363: , P_planning_group => P_planning_group );
364:
365: IF ( X_return_status = FND_API.G_RET_STS_ERROR ) THEN
366: RAISE FND_API.G_EXC_ERROR;
367: ELSIF ( X_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
368: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
369: END IF;
370:
371:
364:
365: IF ( X_return_status = FND_API.G_RET_STS_ERROR ) THEN
366: RAISE FND_API.G_EXC_ERROR;
367: ELSIF ( X_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
368: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
369: END IF;
370:
371:
372: END IF;
373:
374: --
375: -- Stanard commit check
376: --
377: IF FND_API.to_boolean( p_commit ) THEN
378: commit work;
379: END IF;
380:
381: --
387:
388: X_project_id := l_project_id;
389:
390: EXCEPTION
391: WHEN FND_API.G_EXC_ERROR THEN
392: ROLLBACK TO create_seiban;
393: X_Return_Status := FND_API.G_RET_STS_ERROR;
394: FND_MSG_PUB.count_and_get( p_count => X_Msg_Count
395: , p_data => X_Msg_Data );
389:
390: EXCEPTION
391: WHEN FND_API.G_EXC_ERROR THEN
392: ROLLBACK TO create_seiban;
393: X_Return_Status := FND_API.G_RET_STS_ERROR;
394: FND_MSG_PUB.count_and_get( p_count => X_Msg_Count
395: , p_data => X_Msg_Data );
396:
397: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
393: X_Return_Status := FND_API.G_RET_STS_ERROR;
394: FND_MSG_PUB.count_and_get( p_count => X_Msg_Count
395: , p_data => X_Msg_Data );
396:
397: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
398: ROLLBACK TO create_seiban;
399: X_Return_Status := FND_API.G_RET_STS_UNEXP_ERROR;
400: FND_MSG_PUB.count_and_get( p_count => X_Msg_Count
401: , p_data => X_Msg_Data );
395: , p_data => X_Msg_Data );
396:
397: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
398: ROLLBACK TO create_seiban;
399: X_Return_Status := FND_API.G_RET_STS_UNEXP_ERROR;
400: FND_MSG_PUB.count_and_get( p_count => X_Msg_Count
401: , p_data => X_Msg_Data );
402:
403: WHEN OTHERS THEN
401: , p_data => X_Msg_Data );
402:
403: WHEN OTHERS THEN
404: ROLLBACK TO create_seiban;
405: X_Return_Status := FND_API.G_RET_STS_UNEXP_ERROR;
406: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
407: FND_MSG_PUB.add_exc_msg( p_pkg_name => G_PKG_NAME
408: , p_procedure_name => l_api_name);
409: END IF;