DBA Data[Home] [Help]

PACKAGE BODY: APPS.AMS_LST_RULE_USAGES

Source


1 PACKAGE BODY ams_lst_rule_usages AS
2 /* $Header: amsvlmpb.pls 115.5 2002/11/22 08:55:42 jieli ship $ */
3 
4 
5 PROCEDURE create_list_rule_usages(
6    p_api_version           IN  NUMBER,
7    p_init_msg_list         IN  VARCHAR2  := FND_API.g_false,
8    p_commit                IN  VARCHAR2  := FND_API.g_false,
9    p_validation_level      IN  NUMBER    := FND_API.g_valid_level_full,
10    x_return_status         OUT NOCOPY VARCHAR2,
11    x_msg_count             OUT NOCOPY NUMBER,
12    x_msg_data              OUT NOCOPY VARCHAR2,
13    p_list_header_id        in  NUMBER,
14    p_list_rule_id          in  NUMBER,
15    x_list_rule_usage_id    OUT NOCOPY number
16 ) IS
17 l_api_name constant varchar2(30) := 'create_list_rule_usages';
18 l_api_version       CONSTANT NUMBER := 1.0;
19 l_list_rule_usage_id   number;
20    CURSOR c_get_id is
21       SELECT ams_list_rule_usages_s.NEXTVAL
22       FROM DUAL;
23 
24 BEGIN
25 
26    SAVEPOINT create_list_rule_usages;
27 
28    IF FND_API.to_boolean(p_init_msg_list) THEN
29     FND_MSG_PUB.initialize;
30    END IF;
31 
32    IF NOT FND_API.compatible_api_call
33    (
34       l_api_version,
35       p_api_version,
36       l_api_name,
37       g_pkg_name
38    )
39    THEN
40 	RAISE FND_API.g_exc_unexpected_error;
41    END IF;
42    x_return_status  := FND_API.G_RET_STS_SUCCESS;
43 
44        OPEN c_get_id;
45        FETCH c_get_id INTO l_list_rule_usage_Id;
46        CLOSE c_get_id;
47 
48        x_list_rule_usage_id   := l_list_rule_usage_Id;
49       delete from ams_list_rule_usages
50       where list_header_id = p_list_header_id;
51 
52    INSERT INTO ams_list_rule_usages (
53     list_rule_usage_id              ,
54     list_header_id                  ,
55     list_rule_id                    ,
56     last_update_date                ,
57     last_updated_by                 ,
58     creation_date                   ,
59     created_by                      ,
60     last_update_login               ,
61     object_version_number           ,
62     active_from_date                ,
63     active_to_date                  ,
64     priority                        ,
65     security_group_id
66   )
67   values (
68     l_list_rule_usage_id,
69     p_list_header_id,
70     p_list_rule_id,
71     sysdate,
72     fnd_global.user_id,
73     sysdate,
74     fnd_global.user_id,
75     fnd_global.conc_login_id,
76     1,
77     sysdate ,
78     '',
79     '',
80     ''
81   );
82 
83    IF x_return_status =  fnd_api.g_ret_sts_error THEN
84       RAISE FND_API.g_exc_error;
85    ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
86       RAISE FND_API.g_exc_unexpected_error;
87    END IF;
88    IF p_commit = FND_API.g_true then
89       COMMIT WORK;
90    END IF;
91 
92    FND_MSG_PUB.Count_AND_Get
93        ( p_count           =>      x_msg_count,
94          p_data            =>      x_msg_data,
95          p_encoded	   =>      FND_API.G_FALSE );
96 
97 EXCEPTION
98   WHEN FND_API.G_EXC_ERROR THEN
99      x_return_status := FND_API.g_ret_sts_error ;
100      ROLLBACK TO create_list_rule_usages;
101       FND_MSG_PUB.Count_AND_Get
102          ( p_count       =>      x_msg_count,
103            p_data        =>      x_msg_data,
104            p_encoded	=>      FND_API.G_FALSE
105           );
106  WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
107    	x_return_status := FND_API.g_ret_sts_unexp_error ;
108 	ROLLBACK TO create_list_rule_usages;
109      FND_MSG_PUB.Count_AND_Get
110          ( p_count           =>      x_msg_count,
111            p_data            =>      x_msg_data,
112            p_encoded	    =>      FND_API.G_FALSE
113           );
114  WHEN OTHERS THEN
115    	x_return_status := FND_API.g_ret_sts_unexp_error ;
116 	ROLLBACK TO create_list_rule_usages;
117      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR )
118      THEN
119         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
120      END IF;
121      FND_MSG_PUB.Count_AND_Get
122        ( p_count           =>      x_msg_count,
123          p_data            =>      x_msg_data,
124          p_encoded	   =>      FND_API.G_FALSE
125         );
126 
127 END;
128 END ams_lst_rule_usages ;