7: -- Define Procedure process_uc_header --
8: -- This API is used to create, update or expire a UC header record in ahl_unit_config_headers
9: PROCEDURE process_uc_header(
10: p_api_version IN NUMBER := 1.0,
11: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
12: p_commit IN VARCHAR2 := FND_API.G_FALSE,
13: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
14: x_return_status OUT NOCOPY VARCHAR2,
15: x_msg_count OUT NOCOPY NUMBER,
8: -- This API is used to create, update or expire a UC header record in ahl_unit_config_headers
9: PROCEDURE process_uc_header(
10: p_api_version IN NUMBER := 1.0,
11: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
12: p_commit IN VARCHAR2 := FND_API.G_FALSE,
13: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
14: x_return_status OUT NOCOPY VARCHAR2,
15: x_msg_count OUT NOCOPY NUMBER,
16: x_msg_data OUT NOCOPY VARCHAR2,
9: PROCEDURE process_uc_header(
10: p_api_version IN NUMBER := 1.0,
11: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
12: p_commit IN VARCHAR2 := FND_API.G_FALSE,
13: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
14: x_return_status OUT NOCOPY VARCHAR2,
15: x_msg_count OUT NOCOPY NUMBER,
16: x_msg_data OUT NOCOPY VARCHAR2,
17: p_dml_flag IN VARCHAR2,
35: AND trunc(nvl(u.active_end_date, SYSDATE+1)) > trunc(SYSDATE);
36:
37: BEGIN
38: --Initialize API return status to success
39: x_return_status := FND_API.G_RET_STS_SUCCESS;
40:
41: --Standard Start of API savepoint
42: SAVEPOINT process_uc_header;
43:
41: --Standard Start of API savepoint
42: SAVEPOINT process_uc_header;
43:
44: --Standard call to check for call compatibility.
45: IF NOT FND_API.compatible_api_call(
46: l_api_version,
47: p_api_version,
48: l_api_name,
49: G_PKG_NAME)
47: p_api_version,
48: l_api_name,
49: G_PKG_NAME)
50: THEN
51: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
52: END IF;
53:
54: --Initialize message list if p_init_msg_list is set to TRUE.
55: IF FND_API.to_boolean(p_init_msg_list) THEN
51: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
52: END IF;
53:
54: --Initialize message list if p_init_msg_list is set to TRUE.
55: IF FND_API.to_boolean(p_init_msg_list) THEN
56: FND_MSG_PUB.initialize;
57: END IF;
58:
59: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
68: FND_MESSAGE.set_name('AHL','AHL_UC_API_PARAMETER_INVALID');
69: FND_MESSAGE.set_token('NAME', 'dml_flag');
70: FND_MESSAGE.set_token('VALUE', p_dml_flag);
71: FND_MSG_PUB.add;
72: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
73: END IF;
74:
75: IF p_dml_flag = 'C' THEN
76: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
79: ': before calling ahl_uc_unitconfig_pvt.create_uc_header');
80: END IF;
81: ahl_uc_unitconfig_pvt.create_uc_header(
82: p_api_version => 1.0,
83: p_init_msg_list => FND_API.G_FALSE,
84: p_commit => FND_API.G_FALSE,
85: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
86: p_module_type => NULL,
87: x_return_status => l_return_status,
80: END IF;
81: ahl_uc_unitconfig_pvt.create_uc_header(
82: p_api_version => 1.0,
83: p_init_msg_list => FND_API.G_FALSE,
84: p_commit => FND_API.G_FALSE,
85: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
86: p_module_type => NULL,
87: x_return_status => l_return_status,
88: x_msg_count => l_msg_count,
81: ahl_uc_unitconfig_pvt.create_uc_header(
82: p_api_version => 1.0,
83: p_init_msg_list => FND_API.G_FALSE,
84: p_commit => FND_API.G_FALSE,
85: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
86: p_module_type => NULL,
87: x_return_status => l_return_status,
88: x_msg_count => l_msg_count,
89: x_msg_data => l_msg_data,
95: ': before calling ahl_uc_unitconfig_pvt.update_uc_header');
96: END IF;
97: ahl_uc_unitconfig_pvt.update_uc_header(
98: p_api_version => 1.0,
99: p_init_msg_list => FND_API.G_FALSE,
100: p_commit => FND_API.G_FALSE,
101: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
102: p_module_type => NULL,
103: x_return_status => l_return_status,
96: END IF;
97: ahl_uc_unitconfig_pvt.update_uc_header(
98: p_api_version => 1.0,
99: p_init_msg_list => FND_API.G_FALSE,
100: p_commit => FND_API.G_FALSE,
101: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
102: p_module_type => NULL,
103: x_return_status => l_return_status,
104: x_msg_count => l_msg_count,
97: ahl_uc_unitconfig_pvt.update_uc_header(
98: p_api_version => 1.0,
99: p_init_msg_list => FND_API.G_FALSE,
100: p_commit => FND_API.G_FALSE,
101: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
102: p_module_type => NULL,
103: x_return_status => l_return_status,
104: x_msg_count => l_msg_count,
105: x_msg_data => l_msg_data,
120: FND_MESSAGE.set_token('NAME', 'uc_header_id');
121: FND_MESSAGE.set_token('VALUE', p_x_uc_header_rec.uc_header_id);
122: FND_MSG_PUB.add;
123: CLOSE get_ovns;
124: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
125: END IF;
126: CLOSE get_ovns;
127: ahl_uc_unitconfig_pvt.delete_uc_header(
128: p_api_version => 1.0,
125: END IF;
126: CLOSE get_ovns;
127: ahl_uc_unitconfig_pvt.delete_uc_header(
128: p_api_version => 1.0,
129: p_init_msg_list => FND_API.G_FALSE,
130: p_commit => FND_API.G_FALSE,
131: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
132: x_return_status => l_return_status,
133: x_msg_count => l_msg_count,
126: CLOSE get_ovns;
127: ahl_uc_unitconfig_pvt.delete_uc_header(
128: p_api_version => 1.0,
129: p_init_msg_list => FND_API.G_FALSE,
130: p_commit => FND_API.G_FALSE,
131: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
132: x_return_status => l_return_status,
133: x_msg_count => l_msg_count,
134: x_msg_data => l_msg_data,
127: ahl_uc_unitconfig_pvt.delete_uc_header(
128: p_api_version => 1.0,
129: p_init_msg_list => FND_API.G_FALSE,
130: p_commit => FND_API.G_FALSE,
131: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
132: x_return_status => l_return_status,
133: x_msg_count => l_msg_count,
134: x_msg_data => l_msg_data,
135: p_uc_header_id => p_x_uc_header_rec.uc_header_id,
137: p_csi_instance_ovn => l_csi_instance_ovn);
138: END IF;
139:
140: --Check the return status after calling private APIs
141: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
142: RAISE FND_API.G_EXC_ERROR;
143: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
144: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
145: END IF;
138: END IF;
139:
140: --Check the return status after calling private APIs
141: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
142: RAISE FND_API.G_EXC_ERROR;
143: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
144: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
145: END IF;
146:
139:
140: --Check the return status after calling private APIs
141: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
142: RAISE FND_API.G_EXC_ERROR;
143: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
144: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
145: END IF;
146:
147: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
140: --Check the return status after calling private APIs
141: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
142: RAISE FND_API.G_EXC_ERROR;
143: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
144: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
145: END IF;
146:
147: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
148: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
151:
152: -- Get all the error messages from the previous steps (if any) and raise the appropriate Exception
153: l_msg_count := FND_MSG_PUB.count_msg;
154: IF l_msg_count > 0 THEN
155: RAISE FND_API.G_EXC_ERROR;
156: END IF;
157: -- Perform the Commit (if requested)
158: IF FND_API.to_boolean( p_commit ) THEN
159: COMMIT;
154: IF l_msg_count > 0 THEN
155: RAISE FND_API.G_EXC_ERROR;
156: END IF;
157: -- Perform the Commit (if requested)
158: IF FND_API.to_boolean( p_commit ) THEN
159: COMMIT;
160: END IF;
161: -- Count and Get messages (optional)
162: FND_MSG_PUB.count_and_get(
159: COMMIT;
160: END IF;
161: -- Count and Get messages (optional)
162: FND_MSG_PUB.count_and_get(
163: p_encoded => FND_API.G_FALSE,
164: p_count => x_msg_count,
165: p_data => x_msg_data);
166:
167: EXCEPTION
164: p_count => x_msg_count,
165: p_data => x_msg_data);
166:
167: EXCEPTION
168: WHEN FND_API.G_EXC_ERROR THEN
169: ROLLBACK TO process_uc_header;
170: x_return_status := FND_API.G_RET_STS_ERROR ;
171: FND_MSG_PUB.count_and_get(
172: p_encoded => FND_API.G_FALSE,
166:
167: EXCEPTION
168: WHEN FND_API.G_EXC_ERROR THEN
169: ROLLBACK TO process_uc_header;
170: x_return_status := FND_API.G_RET_STS_ERROR ;
171: FND_MSG_PUB.count_and_get(
172: p_encoded => FND_API.G_FALSE,
173: p_count => x_msg_count,
174: p_data => x_msg_data);
168: WHEN FND_API.G_EXC_ERROR THEN
169: ROLLBACK TO process_uc_header;
170: x_return_status := FND_API.G_RET_STS_ERROR ;
171: FND_MSG_PUB.count_and_get(
172: p_encoded => FND_API.G_FALSE,
173: p_count => x_msg_count,
174: p_data => x_msg_data);
175: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
176: ROLLBACK TO process_uc_header;
171: FND_MSG_PUB.count_and_get(
172: p_encoded => FND_API.G_FALSE,
173: p_count => x_msg_count,
174: p_data => x_msg_data);
175: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
176: ROLLBACK TO process_uc_header;
177: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
178: FND_MSG_PUB.count_and_get(
179: p_encoded => FND_API.G_FALSE,
173: p_count => x_msg_count,
174: p_data => x_msg_data);
175: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
176: ROLLBACK TO process_uc_header;
177: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
178: FND_MSG_PUB.count_and_get(
179: p_encoded => FND_API.G_FALSE,
180: p_count => x_msg_count,
181: p_data => x_msg_data);
175: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
176: ROLLBACK TO process_uc_header;
177: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
178: FND_MSG_PUB.count_and_get(
179: p_encoded => FND_API.G_FALSE,
180: p_count => x_msg_count,
181: p_data => x_msg_data);
182: WHEN OTHERS THEN
183: ROLLBACK TO process_uc_header;
180: p_count => x_msg_count,
181: p_data => x_msg_data);
182: WHEN OTHERS THEN
183: ROLLBACK TO process_uc_header;
184: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
185: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
186: THEN
187: FND_MSG_PUB.add_exc_msg(
188: p_pkg_name => G_PKG_NAME,
189: p_procedure_name => l_api_name,
190: p_error_text => SUBSTRB(SQLERRM,1,240));
191: END IF;
192: FND_MSG_PUB.count_and_get(
193: p_encoded => FND_API.G_FALSE,
194: p_count => x_msg_count,
195: p_data => x_msg_data);
196: END process_uc_header;
197: