11:
12: PROCEDURE Lock_Row
13: (
14: p_api_version IN NUMBER,
15: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
16: p_commit IN VARCHAR2 := FND_API.G_FALSE,
17: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
18: p_return_status OUT NOCOPY VARCHAR2,
19: p_msg_count OUT NOCOPY NUMBER,
12: PROCEDURE Lock_Row
13: (
14: p_api_version IN NUMBER,
15: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
16: p_commit IN VARCHAR2 := FND_API.G_FALSE,
17: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
18: p_return_status OUT NOCOPY VARCHAR2,
19: p_msg_count OUT NOCOPY NUMBER,
20: p_msg_data OUT NOCOPY VARCHAR2,
13: (
14: p_api_version IN NUMBER,
15: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
16: p_commit IN VARCHAR2 := FND_API.G_FALSE,
17: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
18: p_return_status OUT NOCOPY VARCHAR2,
19: p_msg_count OUT NOCOPY NUMBER,
20: p_msg_data OUT NOCOPY VARCHAR2,
21: --
60: BEGIN
61: --
62: SAVEPOINT Lock_Row_Pvt ;
63: --
64: IF NOT FND_API.Compatible_API_Call ( l_api_version,
65: p_api_version,
66: l_api_name,
67: G_PKG_NAME )
68: THEN
65: p_api_version,
66: l_api_name,
67: G_PKG_NAME )
68: THEN
69: RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
70: END IF;
71: --
72:
73: IF FND_API.to_Boolean ( p_init_msg_list ) THEN
69: RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
70: END IF;
71: --
72:
73: IF FND_API.to_Boolean ( p_init_msg_list ) THEN
74: FND_MSG_PUB.initialize ;
75: END IF;
76: --
77: p_row_locked := FND_API.G_TRUE;
73: IF FND_API.to_Boolean ( p_init_msg_list ) THEN
74: FND_MSG_PUB.initialize ;
75: END IF;
76: --
77: p_row_locked := FND_API.G_TRUE;
78: p_return_status := FND_API.G_RET_STS_SUCCESS ;
79: --
80: -- amount types can be B-Budget, A-Actuals, E- Estimate, F -FTE
81: -- Create new rows only for current and proposed years
74: FND_MSG_PUB.initialize ;
75: END IF;
76: --
77: p_row_locked := FND_API.G_TRUE;
78: p_return_status := FND_API.G_RET_STS_SUCCESS ;
79: --
80: -- amount types can be B-Budget, A-Actuals, E- Estimate, F -FTE
81: -- Create new rows only for current and proposed years
82: -- and only when amount type is not FTE
88: IF (C%NOTFOUND) then
89: CLOSE C;
90: FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
91: FND_MSG_PUB.Add;
92: RAISE FND_API.G_EXC_ERROR ;
93: END IF;
94: CLOSE C;
95:
96: -- Check for amount change removed for performance reasons
96: -- Check for amount change removed for performance reasons
97:
98: END IF;
99: --
100: IF FND_API.To_Boolean ( p_commit ) THEN
101: COMMIT WORK;
102: END iF;
103: --
104: FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
108: --
109:
110: WHEN APP_EXCEPTION.RECORD_LOCK_EXCEPTION THEN
111: ROLLBACK TO Lock_Row_Pvt ;
112: p_row_locked := FND_API.G_FALSE;
113: p_return_status := FND_API.G_RET_STS_ERROR;
114: FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
115: p_data => p_msg_data );
116:
109:
110: WHEN APP_EXCEPTION.RECORD_LOCK_EXCEPTION THEN
111: ROLLBACK TO Lock_Row_Pvt ;
112: p_row_locked := FND_API.G_FALSE;
113: p_return_status := FND_API.G_RET_STS_ERROR;
114: FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
115: p_data => p_msg_data );
116:
117:
114: FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
115: p_data => p_msg_data );
116:
117:
118: WHEN FND_API.G_EXC_ERROR THEN
119: --
120: ROLLBACK TO Lock_Row_Pvt ;
121: p_return_status := FND_API.G_RET_STS_ERROR;
122:
117:
118: WHEN FND_API.G_EXC_ERROR THEN
119: --
120: ROLLBACK TO Lock_Row_Pvt ;
121: p_return_status := FND_API.G_RET_STS_ERROR;
122:
123: FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
124: p_data => p_msg_data );
125: --
122:
123: FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
124: p_data => p_msg_data );
125: --
126: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
127: --
128: ROLLBACK TO Lock_Row_Pvt ;
129: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
130: FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
125: --
126: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
127: --
128: ROLLBACK TO Lock_Row_Pvt ;
129: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
130: FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
131: p_data => p_msg_data );
132: --
133: WHEN OTHERS THEN
132: --
133: WHEN OTHERS THEN
134: --
135: ROLLBACK TO Lock_Row_Pvt ;
136: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
137: --
138: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
139: FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
140: l_api_name);