[Home] [Help]
PACKAGE BODY: APPS.INL_RULE_GRP
Source
1 PACKAGE BODY INL_RULE_GRP AS
2 /* $Header: INLGRULB.pls 120.0.12020000.2 2013/02/19 16:29:11 acferrei noship $ */
3 -- API name : Check_Condition
4 -- Type : Group
5 -- Function : Returns Y or N indicating whether the processing of an imported
6 -- LCM shipment should be automatically submitted or not
7 -- Pre-reqs : None
8 -- Parameters :
9 -- IN : p_api_version IN NUMBER,
10 -- p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
11 -- p_commit IN VARCHAR2 := FND_API.G_FALSE
12 -- p_ship_header_id IN NUMBER
13 -- p_rule_package_name IN VARCHAR2
14 --
15 -- OUT x_return_status OUT NOCOPY VARCHAR2
16 -- x_msg_count OUT NOCOPY NUMBER
17 -- x_msg_data OUT NOCOPY VARCHAR2
18 --
19 -- Version : Current version 1.0
20 --
21 -- Notes :
22 FUNCTION Check_Condition(p_api_version IN NUMBER,
23 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
24 p_commit IN VARCHAR2 := FND_API.G_FALSE,
25 p_ship_header_id IN NUMBER,
26 p_rule_package_name IN VARCHAR2,
27 x_return_status OUT NOCOPY VARCHAR2,
28 x_msg_count OUT NOCOPY NUMBER,
29 x_msg_data OUT NOCOPY VARCHAR2) RETURN VARCHAR2 IS
30
31 l_api_name CONSTANT VARCHAR2(30) := 'Check_Condition';
32 l_api_version CONSTANT NUMBER := 1.0;
33 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
34 l_debug_info VARCHAR2(2000);
35 l_msg_count NUMBER;
36 l_msg_data VARCHAR2(2000);
37
38 l_sql_dist VARCHAR2(2000);
39 l_check_condition VARCHAR2(1) := 'Y';
40 l_condition_call VARCHAR2(200);
41 l_exec_code VARCHAR2(200);
42
43 BEGIN
44
45 -- Standard Beginning of Procedure/Function Logging
46 INL_LOGGING_PVT.Log_BeginProc(p_module_name => g_module_name,
47 p_procedure_name => l_api_name) ;
48
49 -- Initialize message list if p_init_msg_list is set to TRUE.
50 IF FND_API.to_Boolean(p_init_msg_list) THEN
51 FND_MSG_PUB.initialize;
52 END IF;
53
54 -- Standard call to check for call compatibility
55 IF NOT FND_API.Compatible_API_Call(p_current_version_number => l_api_version,
56 p_caller_version_number => p_api_version,
57 p_api_name => l_api_name,
58 p_pkg_name => g_pkg_name ) THEN
59 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
60 END IF;
61
62 -- Initialize API return status to success
63 x_return_status := FND_API.G_RET_STS_SUCCESS;
64
65 INL_LOGGING_PVT.Log_Variable(p_module_name => g_module_name,
66 p_procedure_name => l_api_name,
67 p_var_name => 'p_ship_header_id',
68 p_var_value => p_ship_header_id);
69
70 IF p_rule_package_name IS NOT NULL THEN
71
72 l_debug_info := 'Call code: ' || p_rule_package_name;
73 INL_LOGGING_PVT.Log_Statement(p_module_name => g_module_name,
74 p_procedure_name => l_api_name,
75 p_debug_info => l_debug_info);
76
77 l_debug_info := 'Execute custom code';
78 INL_LOGGING_PVT.Log_Statement(p_module_name => g_module_name,
79 p_procedure_name => l_api_name,
80 p_debug_info => l_debug_info);
81
82 l_condition_call := p_rule_package_name || '.Get_Value(' || p_ship_header_id || ')';
83 --REPLACE(p_custom_condition_call, ':p_ship_header_id', p_ship_header_id);
84
85 --l_exec_code := 'BEGIN :l_custom_code_out := ' || l_condition_call || '; END;';
86 l_exec_code := 'BEGIN :l_rule_code_out := ' || l_condition_call || '; END;';
87
88 INL_LOGGING_PVT.Log_Variable (p_module_name => g_module_name,
89 p_procedure_name => l_api_name,
90 p_var_name => 'l_exec_code',
91 p_var_value => l_exec_code);
92
93 EXECUTE IMMEDIATE l_exec_code USING OUT l_check_condition;
94
95 END IF;
96
97 INL_LOGGING_PVT.Log_Variable(p_module_name => g_module_name,
98 p_procedure_name => l_api_name,
99 p_var_name => 'l_check_condition',
100 p_var_value => l_check_condition);
101
102 -- Standard call to get message count and if count is 1, get message info.
103 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.g_false,
104 p_count => x_msg_count,
105 p_data => x_msg_data);
106
107 -- Standard End of Procedure/Function Logging
108 INL_LOGGING_PVT.Log_EndProc(p_module_name => g_module_name,
109 p_procedure_name => l_api_name);
110
111 RETURN l_check_condition;
112
113 EXCEPTION
114 WHEN FND_API.G_EXC_ERROR THEN
115 -- Standard Expected Error Logging
116 INL_LOGGING_PVT.Log_ExpecError(p_module_name => g_module_name,
117 p_procedure_name => l_api_name);
118 x_return_status := FND_API.G_RET_STS_ERROR;
119 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.g_false,
120 p_count => x_msg_count,
121 p_data => x_msg_data);
122 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
123 -- Standard Unexpected Error Logging
124 INL_LOGGING_PVT.Log_UnexpecError(p_module_name => g_module_name,
125 p_procedure_name => l_api_name);
126 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
127 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.g_false,
128 p_count => x_msg_count,
129 p_data => x_msg_data);
130 WHEN OTHERS THEN
131 -- Standard Unexpected Error Logging
132 INL_LOGGING_PVT.Log_UnexpecError(p_module_name => g_module_name,
133 p_procedure_name => l_api_name);
134 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
135 IF FND_MSG_PUB.Check_Msg_Level(
136 p_message_level => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
137 FND_MSG_PUB.Add_Exc_Msg(p_pkg_name => g_pkg_name,
138 p_procedure_name => l_api_name);
139 END IF;
140 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.g_false,
141 p_count => x_msg_count,
142 p_data => x_msg_data);
143 END Check_Condition;
144 END INL_RULE_GRP;