DBA Data[Home] [Help]

PACKAGE BODY: APPS.JTF_BRMEXPRESSIONLINE_PVT

Source


1 PACKAGE BODY JTF_BRMExpressionLine_PVT AS
2 /* $Header: jtfvbelb.pls 120.2 2005/07/05 07:36:03 abraina ship $ */
3 
4 G_PKG_NAME CONSTANT VARCHAR2(30) := 'JTF_BRMExpressionLine_PVT';
5 
6 --------------------------------------------------------------------------
7 -- Start of comments
8 --  Procedure   : Create_ExpressionLine
9 --  Description : Create record in JTF_BRM_EXPRESSION_LINES table
10 --  Parameters  :
11 --      name                 direction  type     required?
12 --      ----                 ---------  ----     ---------
13 --      p_api_version        IN         NUMBER   required
14 --      p_init_msg_list      IN         VARCHAR2 optional
15 --      p_commit             IN         VARCHAR2 optional
16 --      p_validation_level   IN         NUMBER   optional
17 --      x_return_status         OUT     VARCHAR2 required
18 --      x_msg_count             OUT     NUMBER   required
19 --      x_msg_data              OUT     VARCHAR2 required
20 --      p_bel_rec            IN         brm_expression_line_rec_type required
21 --      x_record_id             OUT     NUMBER
22 --
23 --  Notes :
24 --
25 -- End of comments
26 --------------------------------------------------------------------------
27 PROCEDURE Create_ExpressionLine
28 ( p_api_version        IN     NUMBER
29 , p_init_msg_list      IN     VARCHAR2 DEFAULT fnd_api.g_false
30 , p_commit             IN     VARCHAR2 DEFAULT fnd_api.g_false
31 , p_validation_level   IN     NUMBER   DEFAULT fnd_api.g_valid_level_full
32 , x_return_status         OUT NOCOPY VARCHAR2
33 , x_msg_count             OUT NOCOPY NUMBER
34 , x_msg_data              OUT NOCOPY VARCHAR2
35 , p_bel_rec            IN     brm_expression_line_rec_type
36 , x_record_id             OUT NOCOPY NUMBER
37 )
38 IS
39   l_api_name              CONSTANT VARCHAR2(30)   := 'Create_ExpressionLine';
40   l_api_version           CONSTANT NUMBER         := 1.1;
41   l_api_name_full         CONSTANT VARCHAR2(61)   := G_PKG_NAME||'.'||l_api_name;
42   l_object_version_number          NUMBER         := 1;
43   l_return_status                  VARCHAR2(1);
44   l_rowid                          ROWID;
45   l_expression_line_id             NUMBER;
46 
47   CURSOR C IS SELECT ROWID
48               FROM   JTF_BRM_EXPRESSION_LINES
49               WHERE  expression_line_id = l_expression_line_id;
50 
51 BEGIN
52   --
53   -- Standard start of API savepoint
54   --
55   SAVEPOINT Create_ExpressionLine_PVT;
56 
57   --
58   -- Standard call to check for call compatibility
59   --
60   IF NOT FND_API.Compatible_API_Call( l_api_version
61                                     , p_api_version
62                                     , l_api_name
63                                     , G_PKG_NAME
64                                     )
65   THEN
66     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
67   END IF;
68 
69   --
70   -- Initialize message list if p_init_msg_list is set to TRUE
71   --
72   IF FND_API.To_Boolean(p_init_msg_list)
73   THEN
74     FND_MSG_PUB.Initialize;
75   END IF;
76 
77   --
78   -- Initialize API return status to success
79   --
80   x_return_status := FND_API.G_RET_STS_SUCCESS;
81 
82   ------------------------------------------------------------------------
83   -- Perform the database operation. Generate the ID from the
84   -- sequence, then insert the passed in attributes into the
85   -- JTF_BRM_EXPRESION_LINE table.
86   ------------------------------------------------------------------------
87   IF (p_bel_rec.expression_line_id IS NULL)
88   THEN
89     SELECT jtf_brm_expression_lines_s.NEXTVAL
90     INTO   l_expression_line_id
91     FROM   DUAL;
92   ELSE
93     l_expression_line_id := p_bel_rec.expression_line_id;
94   END IF;
95 
96   --
97   -- Insert into table
98   --
99   INSERT INTO JTF_BRM_EXPRESSION_LINES
100   ( EXPRESSION_LINE_ID
101   , RULE_ID
102   , CREATED_BY
103   , CREATION_DATE
104   , LAST_UPDATED_BY
105   , LAST_UPDATE_DATE
106   , LAST_UPDATE_LOGIN
107   , SORT_SEQUENCE
108   , BRM_LEFT_PARENTHESIS_TYPE
109   , BRM_LEFT_PARENTHESIS_CODE
110   , LEFT_VALUE
111   , BRM_OPERATOR_TYPE
112   , BRM_OPERATOR_CODE
113   , RIGHT_VALUE
114   , BRM_RIGHT_PARENTHESIS_TYPE
115   , BRM_RIGHT_PARENTHESIS_CODE
116   , BRM_BOOLEAN_OPERATOR_TYPE
117   , BRM_BOOLEAN_OPERATOR_CODE
118   , ATTRIBUTE1
119   , ATTRIBUTE2
120   , ATTRIBUTE3
121   , ATTRIBUTE4
122   , ATTRIBUTE5
123   , ATTRIBUTE6
124   , ATTRIBUTE7
125   , ATTRIBUTE8
126   , ATTRIBUTE9
127   , ATTRIBUTE10
128   , ATTRIBUTE11
129   , ATTRIBUTE12
130   , ATTRIBUTE13
131   , ATTRIBUTE14
132   , ATTRIBUTE15
133   , ATTRIBUTE_CATEGORY
134   , SECURITY_GROUP_ID
135   , OBJECT_VERSION_NUMBER
136   , APPLICATION_ID
137   ) VALUES
138   ( l_expression_line_id
139   , p_bel_rec.RULE_ID
140   , p_bel_rec.CREATED_BY
141   , p_bel_rec.CREATION_DATE
142   , p_bel_rec.LAST_UPDATED_BY
143   , p_bel_rec.LAST_UPDATE_DATE
144   , p_bel_rec.LAST_UPDATE_LOGIN
145   , p_bel_rec.SORT_SEQUENCE
146   , p_bel_rec.BRM_LEFT_PARENTHESIS_TYPE
147   , p_bel_rec.BRM_LEFT_PARENTHESIS_CODE
148   , p_bel_rec.LEFT_VALUE
149   , p_bel_rec.BRM_OPERATOR_TYPE
150   , p_bel_rec.BRM_OPERATOR_CODE
151   , p_bel_rec.RIGHT_VALUE
152   , p_bel_rec.BRM_RIGHT_PARENTHESIS_TYPE
153   , p_bel_rec.BRM_RIGHT_PARENTHESIS_CODE
154   , p_bel_rec.BRM_BOOLEAN_OPERATOR_TYPE
155   , p_bel_rec.BRM_BOOLEAN_OPERATOR_CODE
156   , p_bel_rec.ATTRIBUTE1
157   , p_bel_rec.ATTRIBUTE2
158   , p_bel_rec.ATTRIBUTE3
159   , p_bel_rec.ATTRIBUTE4
160   , p_bel_rec.ATTRIBUTE5
161   , p_bel_rec.ATTRIBUTE6
162   , p_bel_rec.ATTRIBUTE7
163   , p_bel_rec.ATTRIBUTE8
164   , p_bel_rec.ATTRIBUTE9
165   , p_bel_rec.ATTRIBUTE10
166   , p_bel_rec.ATTRIBUTE11
167   , p_bel_rec.ATTRIBUTE12
168   , p_bel_rec.ATTRIBUTE13
169   , p_bel_rec.ATTRIBUTE14
170   , p_bel_rec.ATTRIBUTE15
171   , p_bel_rec.ATTRIBUTE_CATEGORY
172   , p_bel_rec.SECURITY_GROUP_ID
173   , l_object_version_number
174   , p_bel_rec.APPLICATION_ID
175   );
176 
177   --
178   -- Check if the record was created
179   --
180   OPEN c;
181   FETCH c INTO l_ROWID;
182   IF (c%NOTFOUND)
183   THEN
184     CLOSE c;
185     RAISE no_data_found;
186   END IF;
187   CLOSE c;
188 
189   --
190   -- Return the key value to the caller
191   --
192   x_record_id := l_expression_line_id;
193 
194   --
195   -- Standard check of p_commit
196   --
197   IF FND_API.To_Boolean(p_commit)
198   THEN
199     COMMIT WORK;
200   END IF;
201 
202   --
203   -- Standard call to get message count and if count is 1, get message info
204   --
205   FND_MSG_PUB.Count_And_Get( p_count => x_msg_count
206                            , p_data  => x_msg_data
207                            );
208 
209 EXCEPTION
210   WHEN FND_API.G_EXC_ERROR
211   THEN
212     ROLLBACK TO Create_ExpressionLine_PVT;
213     x_return_status := FND_API.G_RET_STS_ERROR;
214     FND_MSG_PUB.Count_And_Get( p_count => x_msg_count
215                              , p_data  => x_msg_data
216                              );
217 
218   WHEN FND_API.G_EXC_UNEXPECTED_ERROR
219   THEN
220     ROLLBACK TO Create_ExpressionLine_PVT;
221     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
222     FND_MSG_PUB.Count_And_Get( p_count => x_msg_count
223                              , p_data  => x_msg_data
224                              );
225   WHEN OTHERS
226   THEN
227     ROLLBACK TO Create_ExpressionLine_PVT;
228     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
229     IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
230     THEN
231       FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME
232                              , l_api_name
233                              );
234     END IF;
235     FND_MSG_PUB.Count_And_Get( p_count => x_msg_count
236                              , p_data  => x_msg_data
237                              );
238 
239 END Create_ExpressionLine;
240 
241 --------------------------------------------------------------------------
242 -- Start of comments
243 --  Procedure   : Update_ExpressionLine
244 --  Description : Update record in JTF_BRM_EXPRESSION_LINES table
245 --  Parameters  :
246 --      name                 direction  type     required?
247 --      ----                 ---------  ----     ---------
248 --      p_api_version        IN         NUMBER   required
249 --      p_init_msg_list      IN         VARCHAR2 optional
250 --      p_commit             IN         VARCHAR2 optional
251 --      p_validation_level   IN         NUMBER   optional
252 --      x_return_status         OUT     VARCHAR2 required
253 --      x_msg_count             OUT     NUMBER   required
254 --      x_msg_data              OUT     VARCHAR2 required
255 --      p_bel_rec            IN         brm_expression_line_rec_type required
256 --
257 --  Notes :
258 --
259 -- End of comments
260 --------------------------------------------------------------------------
261 PROCEDURE Update_ExpressionLine
262 ( p_api_version      IN     NUMBER
263 , p_init_msg_list    IN     VARCHAR2 DEFAULT fnd_api.g_false
264 , p_commit           IN     VARCHAR2 DEFAULT fnd_api.g_false
265 , p_validation_level IN     NUMBER   DEFAULT fnd_api.g_valid_level_full
266 , x_return_status       OUT NOCOPY VARCHAR2
267 , x_msg_count           OUT NOCOPY NUMBER
268 , x_msg_data            OUT NOCOPY VARCHAR2
269 , p_bel_rec          IN     brm_expression_line_rec_type
270 )
271 IS
272   l_api_name              CONSTANT VARCHAR2(30)    := 'Update_ExpressionLine';
273   l_api_version           CONSTANT NUMBER          := 1.1;
274   l_api_name_full         CONSTANT VARCHAR2(61)    := G_PKG_NAME||'.'||l_api_name;
275   l_object_version_number          NUMBER;
276   l_return_status                  VARCHAR2(1);
277   l_msg_count                      NUMBER;
278   l_msg_data                       VARCHAR2(2000);
279 
280 BEGIN
281   -- Standard start of API savepoint
282   SAVEPOINT Update_ExpressionLine_PVT;
283 
284   -- Standard call to check for call compatibility
285   IF NOT FND_API.Compatible_API_Call( l_api_version
286                                     , p_api_version
287                                     , l_api_name
288                                     , G_PKG_NAME
289                                     )
290   THEN
291     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
292   END IF;
293 
294   -- Initialize message list if p_init_msg_list is set to TRUE
295   IF FND_API.To_Boolean(p_init_msg_list)
296   THEN
297     FND_MSG_PUB.Initialize;
298   END IF;
299 
300   -- Initialize API return status to success
301   x_return_status := FND_API.G_RET_STS_SUCCESS;
302 
303   ------------------------------------------------------------------------
304   -- Get a new object version number
305   ------------------------------------------------------------------------
306   SELECT jtf_brm_expression_lines_s.NEXTVAL
307   INTO   l_object_version_number
308   FROM   DUAL;
309 
310   UPDATE JTF_BRM_EXPRESSION_LINES
311   SET RULE_ID = p_bel_rec.RULE_ID
312   ,   LAST_UPDATED_BY = p_bel_rec.LAST_UPDATED_BY
313   ,   LAST_UPDATE_DATE = p_bel_rec.LAST_UPDATE_DATE
314   ,   LAST_UPDATE_LOGIN = p_bel_rec.LAST_UPDATE_LOGIN
315   ,   SORT_SEQUENCE = p_bel_rec.SORT_SEQUENCE
316   ,   BRM_LEFT_PARENTHESIS_TYPE = p_bel_rec.BRM_LEFT_PARENTHESIS_TYPE
317   ,   BRM_LEFT_PARENTHESIS_CODE = p_bel_rec.BRM_LEFT_PARENTHESIS_CODE
318   ,   LEFT_VALUE = p_bel_rec.LEFT_VALUE
319   ,   BRM_OPERATOR_TYPE = p_bel_rec.BRM_OPERATOR_TYPE
320   ,   BRM_OPERATOR_CODE = p_bel_rec.BRM_OPERATOR_CODE
321   ,   RIGHT_VALUE = p_bel_rec.RIGHT_VALUE
322   ,   BRM_RIGHT_PARENTHESIS_TYPE = p_bel_rec.BRM_RIGHT_PARENTHESIS_TYPE
323   ,   BRM_RIGHT_PARENTHESIS_CODE = p_bel_rec.BRM_RIGHT_PARENTHESIS_CODE
324   ,   BRM_BOOLEAN_OPERATOR_TYPE = p_bel_rec.BRM_BOOLEAN_OPERATOR_TYPE
325   ,   BRM_BOOLEAN_OPERATOR_CODE = p_bel_rec.BRM_BOOLEAN_OPERATOR_CODE
326   ,   ATTRIBUTE1 = p_bel_rec.ATTRIBUTE1
327   ,   ATTRIBUTE2 = p_bel_rec.ATTRIBUTE2
328   ,   ATTRIBUTE3 = p_bel_rec.ATTRIBUTE3
329   ,   ATTRIBUTE4 = p_bel_rec.ATTRIBUTE4
330   ,   ATTRIBUTE5 = p_bel_rec.ATTRIBUTE5
331   ,   ATTRIBUTE6 = p_bel_rec.ATTRIBUTE6
332   ,   ATTRIBUTE7 = p_bel_rec.ATTRIBUTE7
333   ,   ATTRIBUTE8 = p_bel_rec.ATTRIBUTE8
334   ,   ATTRIBUTE9 = p_bel_rec.ATTRIBUTE9
335   ,   ATTRIBUTE10 = p_bel_rec.ATTRIBUTE10
336   ,   ATTRIBUTE11 = p_bel_rec.ATTRIBUTE11
337   ,   ATTRIBUTE12 = p_bel_rec.ATTRIBUTE12
338   ,   ATTRIBUTE13 = p_bel_rec.ATTRIBUTE13
339   ,   ATTRIBUTE14 = p_bel_rec.ATTRIBUTE14
340   ,   ATTRIBUTE15 = p_bel_rec.ATTRIBUTE15
341   ,   ATTRIBUTE_CATEGORY = p_bel_rec.ATTRIBUTE_CATEGORY
342   ,   SECURITY_GROUP_ID = p_bel_rec.SECURITY_GROUP_ID
343   ,   OBJECT_VERSION_NUMBER = l_object_version_number
344   ,   APPLICATION_ID = p_bel_rec.APPLICATION_ID
345   WHERE EXPRESSION_LINE_ID = p_bel_rec.EXPRESSION_LINE_ID;
346 
347   --
348   -- Check if the update was succesfull
349   --
350   IF (SQL%NOTFOUND)
351   THEN
352     RAISE no_data_found;
353   END IF;
354 
355   --
356   -- Standard check of p_commit
357   --
358   IF FND_API.To_Boolean(p_commit)
359   THEN
360     COMMIT WORK;
361   END IF;
362 
363   --
364   -- Standard call to get message count and if count is 1, get message info
365   --
366   FND_MSG_PUB.Count_And_Get( p_count => x_msg_count
367                            , p_data  => x_msg_data
368                            );
369 
370 EXCEPTION
371   WHEN FND_API.G_EXC_ERROR
372   THEN
373     ROLLBACK TO Update_ExpressionLine_PVT;
374     x_return_status := FND_API.G_RET_STS_ERROR;
375     FND_MSG_PUB.Count_And_Get( p_count => x_msg_count
376                              , p_data  => x_msg_data
377                              );
378 
379   WHEN FND_API.G_EXC_UNEXPECTED_ERROR
380   THEN
381     ROLLBACK TO Update_ExpressionLine_PVT;
382     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
383     FND_MSG_PUB.Count_And_Get( p_count => x_msg_count
384                              , p_data  => x_msg_data
385                              );
386 
387   WHEN OTHERS
388   THEN
389     ROLLBACK TO Update_ExpressionLine_PVT;
390     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
391     IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
392     THEN
393       FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME
394                              , l_api_name
395                              );
396     END IF;
397     FND_MSG_PUB.Count_And_Get( p_count => x_msg_count
398                              , p_data  => x_msg_data
399                              );
400 
401 END Update_ExpressionLine;
402 
403 
404 --------------------------------------------------------------------------
405 -- Start of comments
406 --  Procedure   : Delete_ExpressionLine
407 --  Description : Delete record in JTF_BRM_EXPRESSION_LINES table
408 --  Parameters  :
409 --      name                 direction  type     required?
410 --      ----                 ---------  ----     ---------
411 --      p_api_version        IN         NUMBER   required
412 --      p_init_msg_list      IN         VARCHAR2 optional
413 --      p_commit             IN         VARCHAR2 optional
414 --      p_validation_level   IN         NUMBER   optional
415 --      x_return_status         OUT     VARCHAR2 required
416 --      x_msg_count             OUT     NUMBER   required
417 --      x_msg_data              OUT     VARCHAR2 required
418 --      p_expression_line_id IN         NUMBER   required
419 --
420 --  Notes :
421 --
422 -- End of comments
423 --------------------------------------------------------------------------
424 PROCEDURE Delete_ExpressionLine
425 ( p_api_version        IN     NUMBER
426 , p_init_msg_list      IN     VARCHAR2 DEFAULT fnd_api.g_false
427 , p_commit             IN     VARCHAR2 DEFAULT fnd_api.g_false
428 , p_validation_level   IN     NUMBER   DEFAULT fnd_api.g_valid_level_full
429 , x_return_status         OUT NOCOPY VARCHAR2
430 , x_msg_count             OUT NOCOPY NUMBER
431 , x_msg_data              OUT NOCOPY VARCHAR2
432 , p_expression_line_id IN     NUMBER
433 )
434 IS
435   l_api_name      CONSTANT VARCHAR2(30) := 'Delete_ExpressionLine';
436   l_api_version   CONSTANT NUMBER       := 1.1;
437   l_api_name_full CONSTANT VARCHAR2(62) := G_PKG_NAME||'.'||l_api_name;
438   l_return_status VARCHAR2(1);
439   l_msg_count     NUMBER;
440   l_msg_data      VARCHAR2(2000);
441 BEGIN
442   --
443   -- Establish save point
444   --
445   SAVEPOINT Delete_ExpressionLine_PVT;
446 
447   --
448   -- Check version number
449   --
450   IF NOT FND_API.Compatible_API_Call( l_api_version
451                                     , p_api_version
452                                     , l_api_name
453                                     , G_PKG_NAME
454                                     )
455   THEN
456     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
457   END IF;
458 
459   --
460   -- Initialize message list if requested
461   --
462   IF FND_API.to_Boolean( p_init_msg_list )
463   THEN
464     FND_MSG_PUB.initialize;
465   END IF;
466 
467   --
468   -- Initialize return status to SUCCESS
469   --
470   X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
471 
472   DELETE FROM JTF_BRM_EXPRESSION_LINES
473   WHERE expression_line_id = p_expression_line_id;
474 
475   --
476   -- Check if the delete was succesfull
477   --
478   IF (SQL%NOTFOUND)
479   THEN
480     RAISE NO_DATA_FOUND;
481   END IF;
482 
483   IF FND_API.To_Boolean( p_commit )
484   THEN
485     COMMIT WORK;
486   END IF;
487 
488   FND_MSG_PUB.Count_And_Get( p_count  => X_MSG_COUNT
489                            , p_data  => X_MSG_DATA
490                            );
491 
492   EXCEPTION
493     WHEN FND_API.G_EXC_ERROR
494     THEN
495       ROLLBACK TO Delete_ExpressionLine_PVT;
496       X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
497       FND_MSG_PUB.Count_And_Get( p_count => X_MSG_COUNT
498                                , p_data  => X_MSG_DATA
499                                );
500 
501     WHEN FND_API.G_EXC_UNEXPECTED_ERROR
502     THEN
503       ROLLBACK TO Delete_ExpressionLine_PVT;
504       X_RETURN_STATUS := FND_API.G_RET_STS_UNEXP_ERROR;
505       FND_MSG_PUB.Count_And_Get( p_count => X_MSG_COUNT
506                                , p_data  => X_MSG_DATA
507                                );
508 
509     WHEN OTHERS
510     THEN
511       ROLLBACK TO Delete_ExpressionLine_PVT;
512       X_RETURN_STATUS := FND_API.G_RET_STS_UNEXP_ERROR;
513       IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
514       THEN
515         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME
516                                , l_api_name
517                                );
518       END IF;
519       FND_MSG_PUB.Count_And_Get( p_count => X_MSG_COUNT
520                                , p_data  => X_MSG_DATA
521                                );
522 
523 END Delete_ExpressionLine;
524 
525 END JTF_BRMExpressionLine_PVT;