DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_EXECUTE_FORMULA_PUB

Source


1 PACKAGE BODY OKL_EXECUTE_FORMULA_PUB AS
2   /* $Header: OKLPFMLB.pls 115.10 2004/04/13 10:45:20 rnaik noship $ */
3 
4   PROCEDURE execute(p_api_version           IN  NUMBER
5                    ,p_init_msg_list         IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
6                    ,x_return_status         OUT NOCOPY VARCHAR2
7                    ,x_msg_count             OUT NOCOPY NUMBER
8                    ,x_msg_data              OUT NOCOPY VARCHAR2
9                    ,p_formula_name          IN  okl_formulae_v.name%TYPE
10                    ,p_contract_id           IN  okl_k_headers_v.id%TYPE
11                    ,p_line_id               IN  okl_k_lines_v.id%TYPE DEFAULT NULL
12                    ,p_additional_parameters IN  ctxt_val_tbl_type DEFAULT g_additional_parameters_null
13                    ,x_value                 OUT NOCOPY NUMBER
14                    ) IS
15     l_msg_count              NUMBER;
16     l_msg_data               VARCHAR2(100);
17     l_api_name               CONSTANT VARCHAR2(30) := 'EXECUTE';
18     l_return_status          VARCHAR2(1)           := FND_API.G_RET_STS_SUCCESS;
19     l_formula_id             okl_formulae_v.id%TYPE;
20     l_formula_string         okl_formulae_v.formula_string%TYPE;
21     l_formula_name           okl_formulae_v.name%TYPE;
22     l_contract_id            okl_k_headers_v.id%TYPE;
23     l_line_id                okl_k_lines_v.id%TYPE;
24     l_additional_parameters  ctxt_val_tbl_type;
25     l_value                  NUMBER;
26     l_init_msg_list            VARCHAR2(2) := 'T';  -- SGORANTL
27   BEGIN
28     x_return_status := FND_API.G_RET_STS_SUCCESS;
29 
30     SAVEPOINT execute;
31 	  -- SGORANTL changed start
32 	IF NVL(p_init_msg_list,'F') = 'T'  THEN
33         	OKL_API.init_msg_list(l_init_msg_list);
34 	END IF;
35   -- SGORANTL changed end
36 
37     l_formula_name          := p_formula_name;
38     l_contract_id           := p_contract_id;
39     l_line_id               := p_line_id;
40     l_additional_parameters := p_additional_parameters;
41 
42 
43 
44 -- Added by Santonyr on 22-Oct-2003 to fix bug 3214171
45     g_additional_parameters := p_additional_parameters;
46 
47     okl_execute_formula_pvt.execute(p_api_version           => p_api_version
48                                    ,p_init_msg_list         => p_init_msg_list
49                                    ,x_return_status         => l_return_status
50                                    ,x_msg_count             => x_msg_count
51                                    ,x_msg_data              => x_msg_data
52 
53                                    ,p_formula_name          => l_formula_name
54                                    ,p_contract_id           => l_contract_id
55                                    ,p_line_id               => l_line_id
56                                    ,p_additional_parameters => l_additional_parameters
57                                    ,x_value                 => l_value
58                                    );
59 
60     IF l_return_status = FND_API.G_RET_STS_ERROR THEN
61       RAISE FND_API.G_EXC_ERROR;
62     ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
63       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
64     END IF;
65     x_value := l_value;
66   EXCEPTION
67     WHEN FND_API.G_EXC_ERROR THEN
68       ROLLBACK TO execute;
69       x_return_status := FND_API.G_RET_STS_ERROR;
70 
71       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
72                                ,p_count   => x_msg_count
73                                ,p_data    => x_msg_data);
74 
75     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
76       ROLLBACK TO execute;
77       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
78       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
79                                ,p_count   => x_msg_count
80                                ,p_data    => x_msg_data);
81     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
82       ROLLBACK TO execute;
83       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
84       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
85                                ,p_count   => x_msg_count
86                                ,p_data    => x_msg_data);
87     WHEN OTHERS THEN
88       FND_MSG_PUB.ADD_EXC_MSG('OKL_EXECUTE_FORMULA_PUB','execute');
89       -- store SQL error message on message stack for caller
90       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
91                                ,p_count   => x_msg_count
92                                ,p_data    => x_msg_data);
93       -- notify caller of an UNEXPECTED error
94       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
95   END execute;
96 
97   PROCEDURE execute(p_api_version              IN  NUMBER
98                    ,p_init_msg_list            IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
99                    ,x_return_status            OUT NOCOPY VARCHAR2
100                    ,x_msg_count                OUT NOCOPY NUMBER
101                    ,x_msg_data                 OUT NOCOPY VARCHAR2
102                    ,p_formula_name             IN  okl_formulae_v.name%TYPE
103                    ,p_contract_id              IN  okl_k_headers_v.id%TYPE
104                    ,p_line_id                  IN  okl_k_lines_v.id%TYPE DEFAULT NULL
105                    ,p_additional_parameters    IN  ctxt_val_tbl_type DEFAULT g_additional_parameters_null
106                    ,x_operand_val_tbl          OUT NOCOPY operand_val_tbl_type
107                    ,x_value                    OUT NOCOPY NUMBER
108                    ) IS
109     l_msg_count              NUMBER;
110     l_msg_data               VARCHAR2(100);
111     l_api_name               CONSTANT VARCHAR2(30) := 'EXECUTE';
112     l_return_status          VARCHAR2(1)           := FND_API.G_RET_STS_SUCCESS;
113     l_formula_id             okl_formulae_v.id%TYPE;
114     l_formula_string         okl_formulae_v.formula_string%TYPE;
115     l_formula_name           okl_formulae_v.name%TYPE;
116     l_contract_id            okl_k_headers_v.id%TYPE;
117     l_line_id                okl_k_lines_v.id%TYPE;
118     l_operand_val_tbl        operand_val_tbl_type;
119     l_additional_parameters   ctxt_val_tbl_type;
120     l_value                  NUMBER;
121     l_init_msg_list            VARCHAR2(2) := 'T';  -- SGORANTL
122   BEGIN
123     x_return_status := FND_API.G_RET_STS_SUCCESS;
124     SAVEPOINT execute;
125 
126   -- SGORANTL changed start
127 	IF NVL(p_init_msg_list,'F') = 'T'  THEN
128         	OKL_API.init_msg_list(l_init_msg_list);
129 	END IF;
130   -- SGORANTL changed end
131 
132     l_formula_name          := p_formula_name;
133     l_contract_id           := p_contract_id;
134     l_line_id               := p_line_id;
135     l_additional_parameters := p_additional_parameters;
136 
137 -- Added by Santonyr on 22-Oct-2003 to fix bug 3214171
138     g_additional_parameters := p_additional_parameters;
139 
140     okl_execute_formula_pvt.execute(p_api_version           => p_api_version
141                                    ,p_init_msg_list         => p_init_msg_list
142                                    ,x_return_status         => l_return_status
143                                    ,x_msg_count             => x_msg_count
144                                    ,x_msg_data              => x_msg_data
145 
146                                    ,p_formula_name          => l_formula_name
147                                    ,p_contract_id           => l_contract_id
148                                    ,p_line_id               => l_line_id
149                                    ,p_additional_parameters => l_additional_parameters
150                                    ,x_operand_val_tbl       => l_operand_val_tbl
151                                    ,x_value                 => l_value
152                                    );
153 
154      IF l_return_status = FND_API.G_RET_STS_ERROR THEN
155         RAISE FND_API.G_EXC_ERROR;
156      ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
157         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
158      END IF;
159 
160 
161     x_value           := l_value;
162     x_operand_val_tbl := l_operand_val_tbl;
163 
164 
165   EXCEPTION
166     WHEN FND_API.G_EXC_ERROR THEN
167       ROLLBACK TO execute;
168       x_return_status := FND_API.G_RET_STS_ERROR;
169 
170       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
171                                ,p_count   => x_msg_count
172                                ,p_data    => x_msg_data);
173 
174     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
175       ROLLBACK TO execute;
176       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
177       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
178                                ,p_count   => x_msg_count
179                                ,p_data    => x_msg_data);
180 
181     WHEN OTHERS THEN
182       FND_MSG_PUB.ADD_EXC_MSG('OKL_EXECUTE_FORMULA_PUB','execute');
183       -- store SQL error message on message stack for caller
184       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
185                                ,p_count   => x_msg_count
186                                ,p_data    => x_msg_data);
187       -- notify caller of an UNEXPECTED error
188       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
189   END execute;
190 
191 END OKL_EXECUTE_FORMULA_PUB;