120: -- Parameters :
121: --
122: -- Standard IN Parameters :
123: -- p_api_version IN NUMBER Required
124: -- p_init_msg_list IN VARCHAR2 Default FND_API.G_FALSE
125: -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
126: --
127: -- Standard OUT Parameters :
128: -- x_return_status OUT VARCHAR2 Required
121: --
122: -- Standard IN Parameters :
123: -- p_api_version IN NUMBER Required
124: -- p_init_msg_list IN VARCHAR2 Default FND_API.G_FALSE
125: -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
126: --
127: -- Standard OUT Parameters :
128: -- x_return_status OUT VARCHAR2 Required
129: -- x_msg_count OUT NUMBER Required
151:
152: PROCEDURE Get_Route_Mtl_Req
153: (
154: p_api_version IN NUMBER,
155: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
156: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
157: x_return_status OUT NOCOPY VARCHAR2,
158: x_msg_count OUT NOCOPY NUMBER,
159: x_msg_data OUT NOCOPY VARCHAR2,
152: PROCEDURE Get_Route_Mtl_Req
153: (
154: p_api_version IN NUMBER,
155: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
156: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
157: x_return_status OUT NOCOPY VARCHAR2,
158: x_msg_count OUT NOCOPY NUMBER,
159: x_msg_data OUT NOCOPY VARCHAR2,
160: p_route_id IN NUMBER,
211: ', p_request_type = ' || p_request_type);
212: END IF;
213:
214: -- Standard call to check for call compatibility
215: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
216: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
217: END IF;
218:
219: -- Initialize message list if p_init_msg_list is set to TRUE
212: END IF;
213:
214: -- Standard call to check for call compatibility
215: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
216: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
217: END IF;
218:
219: -- Initialize message list if p_init_msg_list is set to TRUE
220: IF FND_API.To_Boolean(p_init_msg_list) THEN
216: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
217: END IF;
218:
219: -- Initialize message list if p_init_msg_list is set to TRUE
220: IF FND_API.To_Boolean(p_init_msg_list) THEN
221: FND_MSG_PUB.Initialize;
222: END IF;
223:
224: -- Initialize API return status to success
221: FND_MSG_PUB.Initialize;
222: END IF;
223:
224: -- Initialize API return status to success
225: x_return_status := FND_API.G_RET_STS_SUCCESS;
226:
227: -- Begin Processing
228: -- First Validate the input parameters
229: Validate_Mtl_Req_Input(p_route_id => p_route_id,
234: x_route_id => l_route_id);
235:
236: IF (FND_MSG_PUB.Count_Msg > 0) THEN
237: -- There are validation errors: Raise error
238: RAISE FND_API.G_EXC_ERROR;
239: END IF;
240:
241: -- Get the Unit Instance
242: l_unit_instance_id := Get_Unit_Instance(p_item_instance_id);
337: -- Standard call to get message count and if count is 1, get message info
338: FND_MSG_PUB.Count_And_Get
339: ( p_count => x_msg_count,
340: p_data => x_msg_data,
341: p_encoded => fnd_api.g_false
342: );
343:
344: IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
345: FND_LOG.STRING(G_LEVEL_PROCEDURE, L_DEBUG_KEY || '.end', 'Exiting Procedure');
345: FND_LOG.STRING(G_LEVEL_PROCEDURE, L_DEBUG_KEY || '.end', 'Exiting Procedure');
346: END IF;
347:
348: EXCEPTION
349: WHEN FND_API.G_EXC_ERROR THEN
350: x_return_status := FND_API.G_RET_STS_ERROR;
351: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
352: p_data => x_msg_data,
353: p_encoded => fnd_api.g_false);
346: END IF;
347:
348: EXCEPTION
349: WHEN FND_API.G_EXC_ERROR THEN
350: x_return_status := FND_API.G_RET_STS_ERROR;
351: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
352: p_data => x_msg_data,
353: p_encoded => fnd_api.g_false);
354:
349: WHEN FND_API.G_EXC_ERROR THEN
350: x_return_status := FND_API.G_RET_STS_ERROR;
351: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
352: p_data => x_msg_data,
353: p_encoded => fnd_api.g_false);
354:
355: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
356: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
357: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
351: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
352: p_data => x_msg_data,
353: p_encoded => fnd_api.g_false);
354:
355: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
356: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
357: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
358: p_data => x_msg_data,
359: p_encoded => fnd_api.g_false);
352: p_data => x_msg_data,
353: p_encoded => fnd_api.g_false);
354:
355: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
356: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
357: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
358: p_data => x_msg_data,
359: p_encoded => fnd_api.g_false);
360:
355: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
356: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
357: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
358: p_data => x_msg_data,
359: p_encoded => fnd_api.g_false);
360:
361: WHEN OTHERS THEN
362: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
363: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
358: p_data => x_msg_data,
359: p_encoded => fnd_api.g_false);
360:
361: WHEN OTHERS THEN
362: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
363: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
364: fnd_msg_pub.add_exc_msg(p_pkg_name => G_PKG_NAME,
365: p_procedure_name => 'Get_Route_Mtl_Req',
366: p_error_text => SUBSTR(SQLERRM,1,240));
366: p_error_text => SUBSTR(SQLERRM,1,240));
367: END IF;
368: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
369: p_data => x_msg_data,
370: p_encoded => fnd_api.g_false);
371:
372: END Get_Route_Mtl_Req;
373:
374: --------------------------------------
903: ', x_item_group_id = ' || l_pos_item_group_id ||
904: ', x_pos_instance_id = ' || l_pos_instance_id);
905: END IF;
906:
907: IF (l_valid_flag = FND_API.G_FALSE) THEN
908: -- Don't include the requirement if the position path is not valid
909: RETURN;
910: END IF;
911:
1487: ' p_csi_item_instance_id = ' || p_unit_instance_id);
1488: END IF;
1489:
1490: AHL_MC_PATH_POSITION_PVT.Get_Pos_Instance(p_api_version => 1.0,
1491: p_init_msg_list => FND_API.G_FALSE,
1492: p_commit => FND_API.G_FALSE,
1493: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
1494: x_return_status => l_return_status,
1495: x_msg_count => l_msg_count,
1488: END IF;
1489:
1490: AHL_MC_PATH_POSITION_PVT.Get_Pos_Instance(p_api_version => 1.0,
1491: p_init_msg_list => FND_API.G_FALSE,
1492: p_commit => FND_API.G_FALSE,
1493: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
1494: x_return_status => l_return_status,
1495: x_msg_count => l_msg_count,
1496: x_msg_data => l_msg_data,
1489:
1490: AHL_MC_PATH_POSITION_PVT.Get_Pos_Instance(p_api_version => 1.0,
1491: p_init_msg_list => FND_API.G_FALSE,
1492: p_commit => FND_API.G_FALSE,
1493: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
1494: x_return_status => l_return_status,
1495: x_msg_count => l_msg_count,
1496: x_msg_data => l_msg_data,
1497: p_position_id => p_path_position_id,
1507: ', x_item_instance_id = ' || l_installed_inst_id ||
1508: ', x_lowest_uc_csi_id = ' || l_lowest_unit_inst_id);
1509: END IF;
1510:
1511: IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1512: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1513: ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1514: RAISE FND_API.G_EXC_ERROR;
1515: END IF;
1508: ', x_lowest_uc_csi_id = ' || l_lowest_unit_inst_id);
1509: END IF;
1510:
1511: IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1512: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1513: ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1514: RAISE FND_API.G_EXC_ERROR;
1515: END IF;
1516:
1509: END IF;
1510:
1511: IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1512: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1513: ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1514: RAISE FND_API.G_EXC_ERROR;
1515: END IF;
1516:
1517: IF(l_mapping_status = G_MAPPING_STATUS_NA) THEN
1510:
1511: IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1512: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1513: ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1514: RAISE FND_API.G_EXC_ERROR;
1515: END IF;
1516:
1517: IF(l_mapping_status = G_MAPPING_STATUS_NA) THEN
1518: -- Position does not apply to current unit
1515: END IF;
1516:
1517: IF(l_mapping_status = G_MAPPING_STATUS_NA) THEN
1518: -- Position does not apply to current unit
1519: x_valid_flag := FND_API.G_FALSE;
1520: RETURN;
1521: END IF;
1522:
1523: OPEN get_pos_path_dtls_csr;
1542: position_dates_rec.ACTIVE_START_DATE > l_requirement_date) OR
1543: (position_dates_rec.ACTIVE_END_DATE IS NOT NULL AND
1544: position_dates_rec.ACTIVE_END_DATE <= l_requirement_date)) THEN
1545: -- Position is not valid on the requirement date
1546: x_valid_flag := FND_API.G_FALSE;
1547: RETURN;
1548: END IF;
1549: END LOOP;
1550: l_last_instance_id := l_lowest_unit_inst_id;
1561: position_rec.ACTIVE_START_DATE > l_requirement_date) OR
1562: (position_rec.ACTIVE_END_DATE IS NOT NULL AND
1563: position_rec.ACTIVE_END_DATE <= l_requirement_date)) THEN
1564: -- Position is not valid on the requirement date
1565: x_valid_flag := FND_API.G_FALSE;
1566: RETURN;
1567: END IF;
1568: END LOOP;
1569: END IF;
1568: END LOOP;
1569: END IF;
1570:
1571: -- The Position hierarchy is valid on the requirement Date
1572: x_valid_flag := FND_API.G_TRUE;
1573:
1574: -- Information available: l_position_key, l_lowest_mc_header_id, l_mapping_status, l_installed_inst_id
1575: -- Get the relationship id and the item group id for the position
1576: OPEN get_position_dtls_csr(c_pos_key => l_position_key,