DBA Data[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;