DBA Data[Home] [Help]

PACKAGE: APPS.CN_CALC_SQL_EXPS_PVT

Source


1 PACKAGE CN_CALC_SQL_EXPS_PVT AUTHID CURRENT_USER AS
2 /*$Header: cnvcexps.pls 120.6 2007/03/14 12:56:42 kjayapau ship $*/
3 
4 TYPE parent_expression_tbl_type IS TABLE OF VARCHAR2(30)
5   INDEX BY BINARY_INTEGER;
6 
7 TYPE calc_expression_rec_type IS RECORD
8   (CALC_SQL_EXP_ID                CN_CALC_SQL_EXPS.CALC_SQL_EXP_ID%TYPE,
9    NAME                           CN_CALC_SQL_EXPS.NAME%TYPE,
10    DESCRIPTION                    CN_CALC_SQL_EXPS.DESCRIPTION%TYPE,
11    STATUS                         CN_CALC_SQL_EXPS.STATUS%TYPE,
12    EXP_TYPE_CODE                  CN_CALC_SQL_EXPS.EXP_TYPE_CODE%TYPE);
13 
14 TYPE calc_expression_tbl_type IS TABLE OF calc_expression_rec_type
15   INDEX BY BINARY_INTEGER;
16 
17 TYPE expr_type_rec_type IS RECORD
18   (node_value                     VARCHAR2(80), -- not based off any table
19    node_label                     VARCHAR2(80),
20    parent_node_value              VARCHAR2(80),
21    element                        VARCHAR2(4000));
22    -- 500 should be long enough... some elements are CLOBs
23 
24 TYPE expr_type_tbl_type IS TABLE OF expr_type_rec_type
25   INDEX BY BINARY_INTEGER;
26 
27 TYPE num_tbl_type IS TABLE OF number
28   INDEX BY BINARY_INTEGER;
29 
30 -- Start of comments
31 --    API name        : Create_Expression
32 --    Type            : Private.
33 --    Function        :
34 --    Pre-reqs        : None.
35 --    Parameters      :
36 --    IN              : p_api_version         IN      NUMBER       Required
37 --                      p_init_msg_list       IN      VARCHAR2     Optional
38 --                        Default = FND_API.G_FALSE
39 --                      p_commit              IN      VARCHAR2     Optional
40 --                        Default = FND_API.G_FALSE
41 --                      p_validation_level    IN      NUMBER       Optional
42 --                        Default = FND_API.G_VALID_LEVEL_FULL
43 --                      p_name                IN      VARCHAR2     Required
44 --                      p_description         IN      VARCHAR2     Optional
45 --                        Default = null
46 --                      p_expression_disp     IN      VARCHAR2     Optional
47 --                        Default = null
48 --                      p_sql_select          IN      VARCHAR2     Optional
49 --                        Default = null
50 --                      p_sql_from            IN      VARCHAR2     Optional
51 --                        Default = null
52 --                      p_piped_expression_disp IN    VARCHAR2     Optional
53 --                        Default = null
54 --                      p_piped_sql_select    IN      VARCHAR2     Optional
55 --                        Default = null
56 --                      p_piped_sql_from      IN      VARCHAR2     Optional
57 --                        Default = null
58 --    OUT             : x_calc_sql_exp_id     OUT     NUMBER
59 --                      x_exp_type_code       OUT     VARCHAR2(30)
60 --                      x_status              OUT     VARCHAR2(30)
61 --                      x_return_status       OUT     VARCHAR2(1)
62 --                      x_msg_count           OUT     NUMBER
63 --                      x_msg_data            OUT     VARCHAR2(2000)
64 --    Version :         Current version       1.0
65 --                      Initial version       1.0
66 --
67 --    Notes           : Create SQL expressions that will be used in
68 --                      calculation.
69 --                      1) Validate the expression and return the result in
70 --                         x_status (Valid or Invalid)
71 --                      2) Classify expressions into sub types for formula
72 --                         validation and dynamic rate table validation
73 --                      3) If there are embedded expressions, record the
74 --                         embedding relations in cn_calc_edges
75 --
76 -- End of comments
77 
78 PROCEDURE Create_Expression
79   (p_api_version                IN      NUMBER                          ,
80    p_init_msg_list              IN      VARCHAR2 := FND_API.G_FALSE     ,
81    p_commit                     IN      VARCHAR2 := FND_API.G_FALSE     ,
82    p_validation_level           IN      NUMBER   := FND_API.G_VALID_LEVEL_FULL,
83    p_org_id			IN	CN_CALC_SQL_EXPS.ORG_ID%TYPE,
84    p_name                       IN      CN_CALC_SQL_EXPS.NAME%TYPE,
85    p_description                IN      CN_CALC_SQL_EXPS.DESCRIPTION%TYPE           := NULL,
86    p_expression_disp            IN      VARCHAR2                                    := NULL, -- CLOBs
87    p_sql_select                 IN      VARCHAR2                                    := NULL,
88    p_sql_from                   IN      VARCHAR2                                    := NULL,
89    p_piped_expression_disp      IN      VARCHAR2                                    := NULL,
90    p_piped_sql_select           IN      VARCHAR2                                    := NULL,
91    p_piped_sql_from             IN      VARCHAR2                                    := NULL,
92    x_calc_sql_exp_id            IN OUT NOCOPY     CN_CALC_SQL_EXPS.CALC_SQL_EXP_ID%TYPE,
93    x_exp_type_code              OUT NOCOPY     CN_CALC_SQL_EXPS.EXP_TYPE_CODE%TYPE,
94    x_status                     OUT NOCOPY     CN_CALC_SQL_EXPS.STATUS%TYPE,
95    x_return_status              OUT NOCOPY     VARCHAR2                        ,
96    x_msg_count                  OUT NOCOPY     NUMBER                          ,
97    x_msg_data                   OUT NOCOPY     VARCHAR2                        ,
98    x_object_version_number	OUT NOCOPY     CN_CALC_SQL_EXPS.OBJECT_VERSION_NUMBER%TYPE);
99 
100 -- Start of comments
101 --    API name        : Update_Expressions
102 --    Type            : Private.
103 --    Function        :
104 --    Pre-reqs        : None.
105 --    Parameters      :
106 --    IN              : p_api_version         IN      NUMBER       Required
107 --                      p_init_msg_list       IN      VARCHAR2     Optional
108 --                        Default = FND_API.G_FALSE
109 --                      p_commit              IN      VARCHAR2     Optional
110 --                        Default = FND_API.G_FALSE
111 --                      p_validation_level    IN      NUMBER       Optional
112 --                        Default = FND_API.G_VALID_LEVEL_FULL
113 --                      p_update_parent_also  IN      VARCHAR2     Optional
114 --                        Default = FND_API.G_FALSE
115 --                      p_calc_sql_exp_id     IN      NUMBER       Required
116 --                      p_name                IN      VARCHAR2     Required
117 --                      p_description         IN      VARCHAR2     Optional
118 --                        Default = null
119 --                      p_expression_disp     IN      VARCHAR2     Optional
120 --                        Default = null
121 --                      p_sql_select          IN      VARCHAR2     Optional
122 --                        Default = null
123 --                      p_sql_from            IN      VARCHAR2     Optional
124 --                        Default = null
125 --                      p_piped_expression_disp IN    VARCHAR2     Optional
126 --                        Default = null
127 --                      p_piped_sql_select    IN      VARCHAR2     Optional
128 --                        Default = null
129 --                      p_piped_sql_from      IN      VARCHAR2     Optional
130 --                        Default = null
131 --                      p_ovn                 IN      NUMBER       Required
132 --    OUT             : x_exp_type_code       OUT     VARCHAR2(30)
133 --                      x_status              OUT     VARCHAR2(30)
134 --                      x_return_status       OUT     VARCHAR2(1)
135 --                      x_msg_count           OUT     NUMBER
136 --                      x_msg_data            OUT     VARCHAR2(2000)
137 --    Version :         Current version       1.0
138 --                      Initial version       1.0
139 --
140 --    Notes           : Update SQL expressions that will be used in
141 --                      calculation.
142 --                      1) validate the expression and return the result in
143 --                         x_status (Valid or Invalid)
144 --                      2) re-classify expressions into sub types for formula
145 --                         validation and dynamic rate table validation
146 --                      3) adjust the corresponding embedding relations in
147 --                         cn_calc_edges
148 --                      4) if the expression is used, update the parent
149 --                         expressions, formulas accordingly
150 --
151 -- End of comments
152 
153 PROCEDURE Update_Expression
154   (p_api_version                IN      NUMBER                          ,
155    p_init_msg_list              IN      VARCHAR2 := FND_API.G_FALSE     ,
156    p_commit                     IN      VARCHAR2 := FND_API.G_FALSE     ,
157    p_validation_level           IN      NUMBER   := FND_API.G_VALID_LEVEL_FULL,
158    p_update_parent_also         IN      VARCHAR2 := fnd_api.g_false     ,
159    p_org_id			IN	CN_CALC_SQL_EXPS.ORG_ID%TYPE,
160    p_calc_sql_exp_id            IN      CN_CALC_SQL_EXPS.CALC_SQL_EXP_ID%TYPE,
161    p_name                       IN      CN_CALC_SQL_EXPS.NAME%TYPE,
162    p_description                IN      CN_CALC_SQL_EXPS.DESCRIPTION%TYPE           := NULL,
163    p_expression_disp            IN      VARCHAR2                                    := NULL, -- CLOBs
164    p_sql_select                 IN      VARCHAR2                                    := NULL,
165    p_sql_from                   IN      VARCHAR2                                    := NULL,
166    p_piped_expression_disp      IN      VARCHAR2                                    := NULL,
167    p_piped_sql_select           IN      VARCHAR2                                    := NULL,
168    p_piped_sql_from             IN      VARCHAR2                                    := NULL,
169    p_ovn                        IN OUT NOCOPY    CN_CALC_SQL_EXPS.OBJECT_VERSION_NUMBER%TYPE,
170    x_exp_type_code              OUT NOCOPY     CN_CALC_SQL_EXPS.EXP_TYPE_CODE%TYPE,
171    x_status                     OUT NOCOPY     CN_CALC_SQL_EXPS.STATUS%TYPE,
172    x_return_status              OUT NOCOPY     VARCHAR2                        ,
173    x_msg_count                  OUT NOCOPY     NUMBER                          ,
174    x_msg_data                   OUT NOCOPY     VARCHAR2                        );
175 
176 -- Start of comments
177 --      API name        : Delete_Expression
178 --      Type            : Private.
179 --      Function        :
180 --      Pre-reqs        : None.
181 --      Parameters      :
182 --      IN              : p_api_version        IN      NUMBER       Required
183 --                        p_init_msg_list      IN      VARCHAR2     Optional
184 --                          Default = FND_API.G_FALSE
185 --                        p_commit             IN      VARCHAR2     Optional
186 --                          Default = FND_API.G_FALSE
187 --                        p_validation_level   IN      NUMBER       Optional
188 --                          Default = FND_API.G_VALID_LEVEL_FULL
189 --                        p_calc_sql_exp_id    IN      NUMBER
190 --      OUT             : x_return_status      OUT     VARCHAR2(1)
191 --                        x_msg_count          OUT     NUMBER
192 --                        x_msg_data           OUT     VARCHAR2(2000)
193 --      Version :         Current version      1.0
194 --                        Initial version      1.0
195 --
196 --      Notes           : Delete an expression
197 --                        1) if it is used, it can not be deleted
198 --                        2) delete the embedding relations in cn_calc_edges
199 --                           if there is any
200 --
201 -- End of comments
202 
203 PROCEDURE Delete_Expression
204   (p_api_version                  IN    NUMBER                          ,
205    p_init_msg_list                IN    VARCHAR2 := FND_API.G_FALSE     ,
206    p_commit                       IN    VARCHAR2 := FND_API.G_FALSE     ,
207    p_validation_level             IN    NUMBER  :=  FND_API.G_VALID_LEVEL_FULL,
208    p_calc_sql_exp_id              IN    CN_CALC_SQL_EXPS.CALC_SQL_EXP_ID%TYPE,
209    x_return_status                OUT NOCOPY   VARCHAR2                        ,
210    x_msg_count                    OUT NOCOPY   NUMBER                          ,
211    x_msg_data                     OUT NOCOPY   VARCHAR2                        );
212 
213 -- Start of comments
214 --      API name        : Get_Parent_Expressions
215 --      Type            : Private.
216 --      Function        :
217 --      Pre-reqs        : None.
218 --      Parameters      :
219 --      IN              : p_api_version        IN      NUMBER       Required
220 --                        p_init_msg_list      IN      VARCHAR2     Optional
221 --                          Default = FND_API.G_FALSE
222 --                        p_commit             IN      VARCHAR2     Optional
223 --                          Default = FND_API.G_FALSE
224 --                        p_validation_level   IN      NUMBER       Optional
225 --                          Default = FND_API.G_VALID_LEVEL_FULL
226 --                        p_calc_sql_exp_id    IN      NUMBER
227 --      OUT             : x_parents_tbl        OUT     expression_tbl_type
228 --                        x_return_status      OUT     VARCHAR2(1)
229 --                        x_msg_count          OUT     NUMBER
230 --                        x_msg_data           OUT     VARCHAR2(2000)
231 --      Version :         Current version      1.0
232 --                        Initial version      1.0
233 --
234 --      Notes           : Get parent expressions if there is any
235 --
236 -- End of comments
237 /*PROCEDURE Get_Parent_Expressions
238   (p_api_version                  IN    NUMBER                          ,
239    p_init_msg_list                IN    VARCHAR2 := FND_API.G_FALSE     ,
240    p_commit                       IN    VARCHAR2 := FND_API.G_FALSE     ,
241    p_validation_level             IN    NUMBER   := FND_API.G_VALID_LEVEL_FULL,
242    p_calc_sql_exp_id              IN    CN_CALC_SQL_EXPS.CALC_SQL_EXP_ID%TYPE,
243    x_parents_tbl                  OUT NOCOPY   parent_expression_tbl_type      ,
244    x_return_status                OUT NOCOPY   VARCHAR2                        ,
245    x_msg_count                    OUT NOCOPY   NUMBER                          ,
246    x_msg_data                     OUT NOCOPY   VARCHAR2                        );*/
247 
248 -- determine the expression type given its SQL statement.
249 PROCEDURE classify_expression
250   (p_org_id		          IN	CN_CALC_SQL_EXPS.ORG_ID%TYPE,
251    p_sql_select                   IN      VARCHAR2,  -- CLOBs
255    x_status                       IN OUT NOCOPY  CN_CALC_SQL_EXPS.STATUS%TYPE,
252    p_sql_from                     IN      VARCHAR2,
253    p_piped_sql_select             IN      VARCHAR2,
254    p_piped_sql_from               IN      VARCHAR2,
256    x_exp_type_code                IN OUT NOCOPY  CN_CALC_SQL_EXPS.EXP_TYPE_CODE%TYPE,
257    x_msg_count                    OUT NOCOPY     NUMBER,
258    x_msg_data                     OUT NOCOPY     VARCHAR2);
259 
260 -- translate the usage code of an expression to get its meaning
261 PROCEDURE get_usage_info
262   (p_exp_type_code                IN      CN_CALC_SQL_EXPS.EXP_TYPE_CODE%TYPE,
263    x_usage_info                   OUT NOCOPY     VARCHAR2);
264 
265 -- populate the summary screen
266 /*PROCEDURE get_expr_summary
267   (p_first                        IN      NUMBER,
268    p_last                         IN      NUMBER,
269    p_srch_name                    IN      VARCHAR2 := '%',
270    x_total_rows                   OUT NOCOPY     NUMBER,
271    x_result_tbl                   OUT NOCOPY     calc_expression_tbl_type);*/
272 
273 -- populate the details for an expression
274 /*PROCEDURE get_expr_detail
275   (p_calc_sql_exp_id              IN     CN_CALC_SQL_EXPS.CALC_SQL_EXP_ID%TYPE,
276    x_name                         OUT NOCOPY    CN_CALC_SQL_EXPS.NAME%TYPE,
277    x_description                  OUT NOCOPY    CN_CALC_SQL_EXPS.DESCRIPTION%TYPE,
278    x_status                       OUT NOCOPY    CN_CALC_SQL_EXPS.STATUS%TYPE,
279    x_exp_type_code                OUT NOCOPY    CN_CALC_SQL_EXPS.EXP_TYPE_CODE%TYPE,
280    x_expression_disp              OUT NOCOPY    VARCHAR2, -- CLOBs
281    x_sql_select                   OUT NOCOPY    VARCHAR2,
282    x_sql_from                     OUT NOCOPY    VARCHAR2,
283    x_piped_sql_select             OUT NOCOPY    VARCHAR2,
284    x_piped_sql_from               OUT NOCOPY    VARCHAR2,
285    x_piped_expression_disp        OUT NOCOPY    VARCHAR2,
286    x_ovn                          OUT NOCOPY    CN_CALC_SQL_EXPS.OBJECT_VERSION_NUMBER%TYPE);*/
287 
288 -- get all the types of elements that can be included in expressions.  the
289 -- types are arranged in a tree structure.  each type has a value, a label
290 -- and a parent value, as well as the element that gets included in the
291 -- expression value and SQL statement.
292 /*PROCEDURE get_type_tree
293   (x_types                        OUT NOCOPY    expr_type_tbl_type);*/
294 
295 -- parse a sql select statement looking for included plan elements
296 -- of the form (1234PE.COLUMN_NAME).  if any are found, include them in
297 -- the x_plan_elt_tbl and provide a parsed version of the sql select.
298 PROCEDURE parse_plan_elements
299   (p_sql_select                   IN     VARCHAR2,
300    x_plan_elt_tbl                 OUT NOCOPY    num_tbl_type,
301    x_parsed_sql_select            OUT NOCOPY    VARCHAR2);
302 
303 -- given a plan element, formula, or expression, determine all the plan
304 -- elements referenced directly or indirectly
305 -- pass in a node type (formula=F, plan element=P, expression=E), and the ID
306 PROCEDURE get_dependent_plan_elts
307   (p_api_version               IN      NUMBER                          ,
308    p_init_msg_list             IN      VARCHAR2 := FND_API.G_FALSE     ,
309    p_commit                    IN      VARCHAR2 := FND_API.G_FALSE     ,
310    p_validation_level          IN      NUMBER  :=  FND_API.G_VALID_LEVEL_FULL ,
311    p_node_type                 IN      VARCHAR2,
312    p_node_id                   IN      NUMBER,
313    x_plan_elt_id_tbl           OUT NOCOPY     num_tbl_type,
314    x_return_status             OUT NOCOPY     VARCHAR2                        ,
315    x_msg_count                 OUT NOCOPY     NUMBER                          ,
316    x_msg_data                  OUT NOCOPY     VARCHAR2                        );
317 
318 -- given a plan element, formula, or expression, determine all the plan
319 -- elements that reference it directly or indirectly
320 -- pass in a node type (formula=F, plan element=P, expression=E), and the ID
321 PROCEDURE get_parent_plan_elts
322   (p_api_version               IN      NUMBER                          ,
323    p_init_msg_list             IN      VARCHAR2 := FND_API.G_FALSE     ,
324    p_commit                    IN      VARCHAR2 := FND_API.G_FALSE     ,
325    p_validation_level          IN      NUMBER  :=  FND_API.G_VALID_LEVEL_FULL ,
326    p_node_type                 IN      VARCHAR2,
327    p_node_id                   IN      NUMBER,
328    x_plan_elt_id_tbl           OUT  NOCOPY   num_tbl_type,
329    x_return_status             OUT  NOCOPY   VARCHAR2                        ,
330    x_msg_count                 OUT  NOCOPY  NUMBER                          ,
331    x_msg_data                  OUT  NOCOPY  VARCHAR2                        );
332 
333 
334 -- import expressions
335 PROCEDURE import
336   (errbuf                    OUT NOCOPY   VARCHAR2,
337    retcode                   OUT NOCOPY   VARCHAR2,
338    p_imp_header_id           IN    NUMBER,
339    p_org_id                  IN NUMBER);
340 
341 -- export
342 PROCEDURE Export
343   (errbuf                    OUT NOCOPY   VARCHAR2,
344    retcode                   OUT NOCOPY   VARCHAR2,
345    p_imp_header_id           IN    NUMBER,
346    p_org_id                  IN NUMBER);
347 
348 PROCEDURE duplicate_expression
349   (p_api_version                IN      NUMBER                          ,
350    p_init_msg_list              IN      VARCHAR2 := FND_API.G_FALSE     ,
351    p_commit                     IN      VARCHAR2 := FND_API.G_FALSE     ,
355    x_new_expr_name              OUT NOCOPY     CN_CALC_SQL_EXPS.NAME%TYPE,
352    p_validation_level           IN      NUMBER   := FND_API.G_VALID_LEVEL_FULL,
353    p_old_expr_id                IN      NUMBER,
354    x_new_expr_id                OUT NOCOPY    NUMBER,
356    x_return_status              OUT NOCOPY     VARCHAR2,
357    x_msg_count                  OUT NOCOPY     NUMBER,
358    x_msg_data                   OUT NOCOPY     VARCHAR2);
359 
360 END CN_CALC_SQL_EXPS_PVT;