12:
13: PROCEDURE Lock_Row
14: (
15: p_api_version IN NUMBER,
16: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
17: p_commit IN VARCHAR2 := FND_API.G_FALSE,
18: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
19: p_return_status OUT NOCOPY VARCHAR2,
20: p_msg_count OUT NOCOPY NUMBER,
13: PROCEDURE Lock_Row
14: (
15: p_api_version IN NUMBER,
16: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
17: p_commit IN VARCHAR2 := FND_API.G_FALSE,
18: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
19: p_return_status OUT NOCOPY VARCHAR2,
20: p_msg_count OUT NOCOPY NUMBER,
21: p_msg_data OUT NOCOPY VARCHAR2,
14: (
15: p_api_version IN NUMBER,
16: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
17: p_commit IN VARCHAR2 := FND_API.G_FALSE,
18: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
19: p_return_status OUT NOCOPY VARCHAR2,
20: p_msg_count OUT NOCOPY NUMBER,
21: p_msg_data OUT NOCOPY VARCHAR2,
22: p_row_locked OUT NOCOPY VARCHAR2,
84: BEGIN
85: --
86: SAVEPOINT Lock_Row_Pvt ;
87: --
88: IF NOT FND_API.Compatible_API_Call ( l_api_version,
89: p_api_version,
90: l_api_name,
91: G_PKG_NAME )
92: THEN
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:
97: IF FND_API.to_Boolean ( p_init_msg_list ) THEN
93: RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
94: END IF;
95: --
96:
97: IF FND_API.to_Boolean ( p_init_msg_list ) THEN
98: FND_MSG_PUB.initialize ;
99: END IF;
100: --
101: p_row_locked := FND_API.G_TRUE;
97: IF FND_API.to_Boolean ( p_init_msg_list ) THEN
98: FND_MSG_PUB.initialize ;
99: END IF;
100: --
101: p_row_locked := FND_API.G_TRUE;
102: p_return_status := FND_API.G_RET_STS_SUCCESS ;
103: --
104: FOR i in 1..p_column_count LOOP
105: IF i = 1 THEN
98: FND_MSG_PUB.initialize ;
99: END IF;
100: --
101: p_row_locked := FND_API.G_TRUE;
102: p_return_status := FND_API.G_RET_STS_SUCCESS ;
103: --
104: FOR i in 1..p_column_count LOOP
105: IF i = 1 THEN
106: l_wal_id := p_wal_id_C1;
163: IF (C%NOTFOUND) then
164: CLOSE C;
165: FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
166: FND_MSG_PUB.Add;
167: RAISE FND_API.G_EXC_ERROR ;
168: END IF;
169: CLOSE C;
170: --Check for Amount change removed for performance reasons
171:
173: END IF;
174:
175: END LOOP;
176: --
177: IF FND_API.To_Boolean ( p_commit ) THEN
178: COMMIT WORK;
179: END iF;
180: --
181: FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
184: EXCEPTION
185: --
186: WHEN APP_EXCEPTION.RECORD_LOCK_EXCEPTION THEN
187: ROLLBACK TO Lock_Row_Pvt ;
188: p_row_locked := FND_API.G_FALSE;
189: p_return_status := FND_API.G_RET_STS_ERROR;
190: FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
191: p_data => p_msg_data );
192: WHEN FND_API.G_EXC_ERROR THEN
185: --
186: WHEN APP_EXCEPTION.RECORD_LOCK_EXCEPTION THEN
187: ROLLBACK TO Lock_Row_Pvt ;
188: p_row_locked := FND_API.G_FALSE;
189: p_return_status := FND_API.G_RET_STS_ERROR;
190: FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
191: p_data => p_msg_data );
192: WHEN FND_API.G_EXC_ERROR THEN
193: --
188: p_row_locked := FND_API.G_FALSE;
189: p_return_status := FND_API.G_RET_STS_ERROR;
190: FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
191: p_data => p_msg_data );
192: WHEN FND_API.G_EXC_ERROR THEN
193: --
194: ROLLBACK TO Lock_Row_Pvt ;
195: p_return_status := FND_API.G_RET_STS_ERROR;
196: FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
191: p_data => p_msg_data );
192: WHEN FND_API.G_EXC_ERROR THEN
193: --
194: ROLLBACK TO Lock_Row_Pvt ;
195: p_return_status := FND_API.G_RET_STS_ERROR;
196: FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
197: p_data => p_msg_data );
198: --
199: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
195: p_return_status := FND_API.G_RET_STS_ERROR;
196: FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
197: p_data => p_msg_data );
198: --
199: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
200: --
201: ROLLBACK TO Lock_Row_Pvt ;
202: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
203: FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
198: --
199: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
200: --
201: ROLLBACK TO Lock_Row_Pvt ;
202: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
203: FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
204: p_data => p_msg_data );
205: --
206: WHEN OTHERS THEN
205: --
206: WHEN OTHERS THEN
207: --
208: ROLLBACK TO Lock_Row_Pvt ;
209: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
210: --
211: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
212: FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
213: l_api_name);