DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGW_PROP_ABSTRACTS_PUB

Source


1 PACKAGE BODY Igw_Prop_Abstracts_Pub AS
2 --$Header: igwpabsb.pls 115.0 2002/12/19 22:43:38 ashkumar noship $
3 
4    ---------------------------------------------------------------------------
5 
6    G_PKG_NAME  VARCHAR2(30) := 'IGW_PROP_ABSTRACTS_PUB';
7 
8    ---------------------------------------------------------------------------
9 
10    PROCEDURE Create_Prop_Abstract
11    (
12       p_validate_only         IN VARCHAR2,
13       p_commit                IN VARCHAR2,
14       p_proposal_number       IN VARCHAR2,
15       p_abstract_type_desc    IN VARCHAR2,
16       p_abstract              IN VARCHAR2,
17       x_return_status         OUT NOCOPY VARCHAR2,
18       x_msg_count             OUT NOCOPY NUMBER,
19       x_msg_data              OUT NOCOPY VARCHAR2
20    ) IS
21 
22       l_api_name      CONSTANT VARCHAR2(30) := 'Create_Prop_Abstract';
23       l_proposal_id            IGW_PROPOSALS_ALL.PROPOSAL_ID%TYPE;
24       l_abstract_type_code     IGW_PROP_ABSTRACTS.ABSTRACT_TYPE_CODE%TYPE;
25       l_rowid                  VARCHAR2(60);
26       l_record_version_number  NUMBER;
27 
28    BEGIN
29 
30       /*
31       **   Establish Savepoint for Rollback
32       */
33 
34       SAVEPOINT Create_Prop_Abstract_Pub;
35 
36       /*
37       **   Initialize Processing
38       */
39 
40       x_return_status := Fnd_Api.G_Ret_Sts_Success;
41 
42       Fnd_Msg_Pub.Initialize;
43 
44       /*
45       **   Verify Mandatory Inputs. Value-Id Conversions.
46       */
47 
48       IF p_proposal_number IS NULL THEN
49 
50          Fnd_Message.Set_Name('IGW','IGW_UPLD_MISSING_PARAMETER');
51          Fnd_Message.Set_Token('PARAM_NAME','P_PROPOSAL_NUMBER');
52          Fnd_Msg_Pub.Add;
53 
54       ELSE
55 
56          Igw_Utils.Get_Proposal_Id
57          (
58             p_context_field    => 'PROPOSAL_ID',
59             p_check_id_flag    => 'N',
60             p_proposal_number  => p_proposal_number,
61             p_proposal_id      => l_proposal_id,
62             x_proposal_id      => l_proposal_id,
63             x_return_status    => x_return_status
64          );
65 
66       END IF;
67 
68       IF p_abstract_type_desc IS NULL THEN
69 
70          Fnd_Message.Set_Name('IGW','IGW_UPLD_MISSING_PARAMETER');
71          Fnd_Message.Set_Token('PARAM_NAME','P_ABSTRACT_TYPE_DESC');
72          Fnd_Msg_Pub.Add;
73 
74       ELSE
75 
76          Igw_Utils.Get_Lookup_Code
77          (
78             p_context_field   => 'ABSTRACT_TYPE_CODE',
79             p_check_id_flag   => 'N',
80             p_lookup_type     => 'IGW_ABSTRACT_TYPES',
81             p_lookup_meaning  => p_abstract_type_desc,
82             p_lookup_code     => null,
83             x_lookup_code     => l_abstract_type_code,
84             x_return_status   => x_return_status
85          );
86 
87       END IF;
88 
89       IF p_abstract IS NULL THEN
90 
91          Fnd_Message.Set_Name('IGW','IGW_UPLD_MISSING_PARAMETER');
92          Fnd_Message.Set_Token('PARAM_NAME','P_ABSTRACT');
93          Fnd_Msg_Pub.Add;
94 
95       END IF;
96 
97       /*
98       **   Discontinue processing if any error has been encountered during
99       **   the earlier stages
100       */
101 
102       IF Fnd_Msg_Pub.Count_Msg > 0 THEN
103 
104          RAISE Fnd_Api.G_Exc_Error;
105 
106       END IF;
107 
108       Igw_Prop_Abstracts_Pvt.Populate_Prop_Abstracts(l_proposal_id);
109 
110       /*
111       **   Establish Savepoint for Rollback
112       */
113 
114       SAVEPOINT Create_Prop_Abstract_Pub;
115 
116       SELECT rowid,
117              record_version_number
118       INTO   l_rowid,
119              l_record_version_number
120       FROM   igw_prop_abstracts
121       WHERE  proposal_id = l_proposal_id
122       AND    abstract_type = 'IGW_ABSTRACT_TYPES'
123       AND    abstract_type_code = l_abstract_type_code;
124 
125       Igw_Prop_Abstracts_Pvt.Update_Prop_Abstract
126       (
127          p_init_msg_list         => Fnd_Api.G_True,
128          p_validate_only         => p_validate_only,
129          p_commit                => Fnd_Api.G_False,
130          p_rowid                 => l_rowid,
131          p_proposal_id           => l_proposal_id,
132          p_proposal_number       => null,
133          p_abstract_type         => 'IGW_ABSTRACT_TYPES',
134          p_abstract_type_code    => l_abstract_type_code,
135          p_abstract_type_desc    => p_abstract_type_desc,
136          p_abstract              => p_abstract,
137          p_attribute_category    => null,
138          p_attribute1            => null,
139          p_attribute2            => null,
140          p_attribute3            => null,
141          p_attribute4            => null,
142          p_attribute5            => null,
143          p_attribute6            => null,
144          p_attribute7            => null,
145          p_attribute8            => null,
146          p_attribute9            => null,
147          p_attribute10           => null,
148          p_attribute11           => null,
149          p_attribute12           => null,
150          p_attribute13           => null,
151          p_attribute14           => null,
152          p_attribute15           => null,
153          p_record_version_number => l_record_version_number,
154          x_return_status         => x_return_status,
155          x_msg_count             => x_msg_count,
156          x_msg_data              => x_msg_data
157       );
158 
159       IF Fnd_Msg_Pub.Count_Msg > 0 THEN
160 
161          RAISE Fnd_Api.G_Exc_Error;
162 
163       END IF;
164 
165       /*
166       **   Commit data if API invoked in commit mode
167       */
168 
169       IF Fnd_Api.To_Boolean(p_commit) THEN
170 
171          COMMIT;
172 
173       END IF;
174 
175    EXCEPTION
176 
177       WHEN Fnd_Api.G_Exc_Error THEN
178 
179          ROLLBACK TO Create_Prop_Abstract_Pub;
180 
181          x_return_status := Fnd_Api.G_Ret_Sts_Error;
182 
183          Fnd_Msg_Pub.Count_And_Get
184          (
185             p_encoded => Fnd_Api.G_False,
186             p_count   => x_msg_count,
187             p_data    => x_msg_data
188          );
189 
190       WHEN others THEN
191 
192          ROLLBACK TO Create_Prop_Abstract_Pub;
193 
194          x_return_status := Fnd_Api.G_Ret_Sts_Unexp_Error;
195 
196          Fnd_Msg_Pub.Add_Exc_Msg
197          (
198             p_pkg_name       => G_PKG_NAME,
199             p_procedure_name => l_api_name
200          );
201 
202          Fnd_Msg_Pub.Count_And_Get
203          (
204             p_encoded => Fnd_Api.G_False,
205             p_count   => x_msg_count,
206             p_data    => x_msg_data
207          );
208 
209    END Create_Prop_Abstract;
210 
211    ---------------------------------------------------------------------------
212 
213 END Igw_Prop_Abstracts_Pub;