[Home] [Help]
1: PACKAGE BODY GMD_SPEC_GRP AS
2: --$Header: GMDGSPCB.pls 120.3.12020000.3 2013/04/01 18:47:39 plowe ship $ */
3:
4: -- Global variables
5: G_PKG_NAME CONSTANT VARCHAR2(30) := 'GMD_Spec_GRP';
1: PACKAGE BODY GMD_SPEC_GRP AS
2: --$Header: GMDGSPCB.pls 120.3.12020000.3 2013/04/01 18:47:39 plowe ship $ */
3:
4: -- Global variables
5: G_PKG_NAME CONSTANT VARCHAR2(30) := 'GMD_Spec_GRP';
6: --Bug 3222090, magupta removed call to FND_PROFILE.VALUE('AFLOG_ENABLED')
7: --forward decl.
8: function set_debug_flag return varchar2;
9: --l_debug VARCHAR2(1) := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'),'N');
23: --| Redwood Shores, CA, USA |
24: --| All rights reserved. |
25: --+==========================================================================+
26: --| File Name : GMDGSPCB.pls |
27: --| Package Name : GMD_Spec_GRP |
28: --| Type : Group |
29: --| |
30: --| Notes |
31: --| This package contains group layer APIs for Specification Entity |
44: --| U(nvalidated) and V(ariable) - T was already there. |
45: --| So When test type is V and U , do not fail validation if fields |
46: --| min_value_num , max_value_num ,target_value_num are not supplied as |
47: --| they are not required |
48: --| Also in GMD_SPEC_GRP.validate_spec_test, |
49: --| do not call proc spec_test_min_target_max_valid for test type V and U |
50: --| Peter Lowe 29-MAR-2013 -bug 16484751 rework code for bug 14364421 |
51: --| In proc validate_spec_test , take out T for 16484751 as we need to |
52: --| preserve these values added above from the gmd_qc_test_values_b table |
331: x_return_status := FND_API.G_RET_STS_ERROR ;
332: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
333: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
334: WHEN OTHERS THEN
335: GMD_API_PUB.Log_Message('GMD_API_ERROR','PACKAGE','gmd_spec_grp.check_for_null_and_fks_in_spec',
336: 'ERROR',substr(sqlerrm,1,100),'POSITION','010');
337: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
338:
339: END check_for_null_and_fks_in_spec;
776: x_return_status := FND_API.G_RET_STS_ERROR ;
777: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
778: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
779: WHEN OTHERS THEN
780: GMD_API_PUB.Log_Message('GMD_API_ERROR','PACKAGE','gmd_spec_grp.check_for_null_and_fks_in_stst',
781: 'ERROR',substr(sqlerrm,1,100),'POSITION','010');
782: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
783:
784: END check_for_null_and_fks_in_stst;
828: x_return_status := FND_API.G_RET_STS_SUCCESS;
829:
830: IF (p_called_from = 'API') THEN
831: -- Check for NULLs and Valid Foreign Keys in the input parameter
832: GMD_Spec_GRP.check_for_null_and_fks_in_spec
833: (
834: p_spec_header => p_spec_header
835: , x_item_number => l_item_number
836: , x_owner => l_owner
877: x_return_status := FND_API.G_RET_STS_ERROR ;
878: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
879: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
880: WHEN OTHERS THEN
881: GMD_API_PUB.Log_Message('GMD_API_ERROR','PACKAGE','gmd_spec_grp.validate_spec_header',
882: 'ERROR',substr(sqlerrm,1,100),'POSITION','010');
883: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
884:
885:
1142: -- Check for NULLs and Valid Foreign Keys in the input parameter
1143: -- No need if called from FORM since it is already
1144: -- done in the form
1145:
1146: GMD_Spec_GRP.check_for_null_and_fks_in_stst
1147: (
1148: p_spec_tests => p_spec_test
1149: , x_spec_tests => x_spec_test
1150: , x_return_status => l_return_status
1432: x_return_status := FND_API.G_RET_STS_ERROR ;
1433: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1434: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1435: WHEN OTHERS THEN
1436: GMD_API_PUB.Log_Message('GMD_API_ERROR','PACKAGE','gmd_spec_grp.validate_spec_test',
1437: 'ERROR',substr(sqlerrm,1,100),'POSITION','010');
1438: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1439:
1440:
1493: FETCH cr_expression_tests INTO l_test_id,l_test_seq;
1494: IF cr_expression_tests%NOTFOUND THEN
1495: EXIT;
1496: END IF;
1497: IF NOT GMD_SPEC_GRP.spec_reference_tests_exist(
1498: p_spec_id => p_spec_id,
1499: p_exp_test_seq => l_test_seq,
1500: p_exp_test_id => l_test_id ) THEN
1501: CLOSE cr_expression_tests ;
1508: WHEN FND_API.G_EXC_ERROR THEN
1509: x_return_status := FND_API.G_RET_STS_ERROR ;
1510:
1511: WHEN OTHERS THEN
1512: GMD_API_PUB.Log_Message('GMD_API_ERROR','PACKAGE','gmd_spec_grp.validate_after_insert_all',
1513: 'ERROR',substr(sqlerrm,1,100),'POSITION','010');
1514: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1515:
1516: END validate_after_insert_all;
1590: END IF;
1591:
1592: -- Ensure that the status permits updates
1593: -- ======================================
1594: IF NOT GMD_SPEC_GRP.Record_Updateable_With_Status(l_spec.spec_status)
1595: THEN
1596: fnd_message.set_name('GMD','GMD_SPEC_STATUS_BLOCKS_UPDATE');
1597: fnd_msg_pub.ADD;
1598: RAISE FND_API.G_EXC_ERROR;
1604: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1605:
1606: WHEN OTHERS THEN
1607: FND_MESSAGE.Set_Name('GMD','GMD_API_ERROR');
1608: FND_MESSAGE.Set_Token('PACKAGE','GMD_SPEC_GRP.VALIDATE_BEFORE_DELETE');
1609: FND_MESSAGE.Set_Token('ERROR', substr(sqlerrm,1,100));
1610: FND_MESSAGE.Set_Token('POSITION',l_progress );
1611: FND_MSG_PUB.ADD;
1612: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1694: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1695:
1696: WHEN OTHERS THEN
1697: FND_MESSAGE.Set_Name('GMD','GMD_API_ERROR');
1698: FND_MESSAGE.Set_Token('PACKAGE','GMD_SPEC_GRP.VALIDATE_BEFORE_DELETE');
1699: FND_MESSAGE.Set_Token('ERROR', substr(sqlerrm,1,100));
1700: FND_MESSAGE.Set_Token('POSITION',l_progress );
1701: FND_MSG_PUB.ADD;
1702: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
1925: RETURN FALSE;
1926:
1927: EXCEPTION
1928: WHEN REQ_FIELDS_MISSING THEN
1929: gmd_api_pub.log_message('GMD_REQ_FIELD_MIS','PACKAGE','GMD_SPEC_GRP.VALUE_IN_NUM_RANGE_DISPLAY');
1930: x_return_status := FND_API.G_RET_STS_ERROR ;
1931: RETURN FALSE;
1932: WHEN OTHERS THEN
1933: gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE','GMD_SPEC_GRP.VALUE_IN_NUM_RANGE_DISPLAY','ERROR', SUBSTR(SQLERRM,1,100),'POSITION',l_position);
1929: gmd_api_pub.log_message('GMD_REQ_FIELD_MIS','PACKAGE','GMD_SPEC_GRP.VALUE_IN_NUM_RANGE_DISPLAY');
1930: x_return_status := FND_API.G_RET_STS_ERROR ;
1931: RETURN FALSE;
1932: WHEN OTHERS THEN
1933: gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE','GMD_SPEC_GRP.VALUE_IN_NUM_RANGE_DISPLAY','ERROR', SUBSTR(SQLERRM,1,100),'POSITION',l_position);
1934: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1935: RETURN FALSE;
1936: END value_in_num_range_display ;
1937:
2034: RETURN TRUE;
2035:
2036: EXCEPTION
2037: WHEN REQ_FIELDS_MISSING THEN
2038: gmd_api_pub.log_message('GMD_REQ_FIELD_MIS','PACKAGE','GMD_SPEC_GRP.SPEC_TEST_MIN_TARGET_MAX_VALID');
2039: RETURN FALSE;
2040: WHEN e_min_error THEN
2041: gmd_api_pub.log_message('GMD_SPEC_TEST_MIN_ERROR','SPEC_TEST_MIN',to_char(p_st_min),'SPEC_TEST_MAX',
2042: to_char(p_st_max),'SPEC_TEST_TARGET',to_char(p_st_target),'TEST_MIN',to_char(p_t_min),'TEST_MAX',to_char(p_t_max));
2049: gmd_api_pub.log_message('GMD_SPEC_TEST_TARGET_ERROR','SPEC_TEST_MIN',to_char(p_st_min),'SPEC_TEST_MAX',
2050: to_char(p_st_max),'SPEC_TEST_TARGET',to_char(p_st_target),'TEST_MIN',to_char(p_t_min),'TEST_MAX',to_char(p_t_max));
2051: RETURN FALSE;
2052: WHEN OTHERS THEN
2053: gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE','GMD_SPEC_GRP.SPEC_TEST_MIN_TARGET_MAX_VALID','ERROR', SUBSTR(SQLERRM,1,100),'POSITION',l_position);
2054: RETURN FALSE;
2055: END spec_test_min_target_max_valid;
2056:
2057:
2232: RETURN TRUE;
2233:
2234: EXCEPTION
2235: WHEN OTHERS THEN
2236: gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE','GMD_SPEC_GRP.SPEC_TEST_EXP_ERROR_REGION_VAL','ERROR', SUBSTR(SQLERRM,1,100),'POSITION',l_position);
2237: RETURN FALSE;
2238: END SPEC_TEST_EXP_ERROR_REGION_VAL;
2239:
2240:
2721: EXCEPTION
2722: WHEN OTHERS THEN
2723: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2724: FND_MESSAGE.Set_Name('GMD','GMD_API_ERROR');
2725: FND_MESSAGE.Set_Token('PACKAGE','GMD_SPEC_GRP.CREATE_SPECIFICATION');
2726: FND_MESSAGE.Set_Token('ERROR', substr(sqlerrm,1,100));
2727: FND_MESSAGE.Set_Token('POSITION',l_progress );
2728: FND_MSG_PUB.ADD;
2729: END create_specification ;
2873:
2874: EXCEPTION
2875: WHEN OTHERS THEN
2876: FND_MESSAGE.SET_NAME('GMD', 'GMD_API_ERROR');
2877: FND_MESSAGE.SET_TOKEN('PACKAGE','GMD_SPEC_GRP.change_status');
2878: FND_MESSAGE.SET_TOKEN('ERROR', SUBSTR(SQLERRM,1,100));
2879: x_message := FND_MESSAGE.GET;
2880: x_return_status := 'E';
2881: RETURN;
2932: RAISE;
2933:
2934: END Get_Who;
2935:
2936: END GMD_SPEC_GRP;