DBA Data[Home] [Help]

PACKAGE BODY: APPS.CSC_PLAN_LINES_PUB

Source


1 PACKAGE BODY CSC_PLAN_LINES_PUB as
2 /* $Header: cscpplnb.pls 115.12 2002/11/25 12:34:05 bhroy ship $ */
3 -- Start of Comments
4 -- Package name     : CSC_PLAN_LINES_PUB
5 -- Purpose          : Public package to insert, update and delete records from
6 --                    CSC_PLAN_LINES table.
7 -- History          :
8 -- MM-DD-YYYY    NAME          MODIFICATIONS
9 -- 10-21-1999    dejoseph      Created.
10 -- 12-08-1999    dejoseph      'Arcs'ed in for first code freeze.
11 -- 12-21-1999    dejoseph      'Arcs'ed in for second code freeze.
12 -- 01-03-2000    dejoseph      'Arcs'ed in for third code freeze. (10-JAN-2000)
13 -- 01-31-2000    dejoseph      'Arcs'ed in for fourth code freeze. (07-FEB-2000)
14 -- 02-13-2000    dejoseph      'Arcs'ed on for fifth code freeze. (21-FEB-2000)
15 -- 02-28-2000    dejoseph      'Arcs'ed on for sixth code freeze. (06-MAR-2000)
16 -- 11-25-2002	bhroy		FND_API defaults removed, added WHENEVER OSERROR EXIT FAILURE ROLLBACK
17 
18 -- NOTE             :
19 -- End of Comments
20 
21 
22 G_PKG_NAME  CONSTANT VARCHAR2(30) := 'CSC_PLAN_LINES_PUB';
23 G_FILE_NAME CONSTANT VARCHAR2(12) := 'cscpplnb.pls';
24 
25 -- Start of Comments
26 -- ***************** Private Conversion Routines Values -> Ids **************
27 -- Purpose
28 --
29 -- This procedure takes a public PLAN_LINES record as input. It may contain
30 -- values or ids. All values are then converted into ids and a
31 -- private PLAN_LINESrecord is returned for the private
32 -- API call.
33 --
34 -- Conversions:
35 --
36 -- Notes
37 --
38 -- 1. IDs take precedence over values. If both are present for a field, ID is used,
39 --    the value based parameter is ignored and a warning message is created.
40 -- 2. This is automatically generated procedure, it converts public record type to
41 --    private record type for all attributes.
42 --
43 -- End of Comments
44 PROCEDURE CONVERT_CSC_PLAN_LINES(
45          P_CSC_PLAN_LINES_Rec        IN   CSC_plan_lines_PUB.CSC_PLAN_LINES_Rec_Type,
46          x_pvt_CSC_PLAN_LINES_rec    OUT NOCOPY  CSC_plan_lines_PVT.CSC_PLAN_LINES_Rec_Type
47 )
48 IS
49 -- Hint: Declare cursor and local variables
50 -- Example: CURSOR C_Get_Lookup_Code(X_Lookup_Type VARCHAR2, X_Meaning VARCHAR2) IS
51 --          SELECT lookup_code
52 --          FROM   as_lookups
53 --          WHERE  lookup_type        = X_Lookup_Type
54 --          AND    nls_upper(meaning) = nls_upper(X_Meaning);
55 
56 l_any_errors       BOOLEAN   := FALSE;
57 
58 BEGIN
59    -- As of now there are no values to be converted into Ids. So just converts a
60    -- public record type into a private record type.
61 
62     x_pvt_CSC_PLAN_LINES_rec.LINE_ID := P_CSC_PLAN_LINES_Rec.LINE_ID;
63     x_pvt_CSC_PLAN_LINES_rec.PLAN_ID := P_CSC_PLAN_LINES_Rec.PLAN_ID;
64     x_pvt_CSC_PLAN_LINES_rec.CONDITION_ID := P_CSC_PLAN_LINES_Rec.CONDITION_ID;
65     x_pvt_CSC_PLAN_LINES_rec.CREATION_DATE := P_CSC_PLAN_LINES_Rec.CREATION_DATE;
66     x_pvt_CSC_PLAN_LINES_rec.LAST_UPDATE_DATE := P_CSC_PLAN_LINES_Rec.LAST_UPDATE_DATE;
67     x_pvt_CSC_PLAN_LINES_rec.CREATED_BY := P_CSC_PLAN_LINES_Rec.CREATED_BY;
68     x_pvt_CSC_PLAN_LINES_rec.LAST_UPDATED_BY := P_CSC_PLAN_LINES_Rec.LAST_UPDATED_BY;
69     x_pvt_CSC_PLAN_LINES_rec.LAST_UPDATE_LOGIN := P_CSC_PLAN_LINES_Rec.LAST_UPDATE_LOGIN;
70     x_pvt_CSC_PLAN_LINES_rec.ATTRIBUTE1 := P_CSC_PLAN_LINES_Rec.ATTRIBUTE1;
71     x_pvt_CSC_PLAN_LINES_rec.ATTRIBUTE2 := P_CSC_PLAN_LINES_Rec.ATTRIBUTE2;
72     x_pvt_CSC_PLAN_LINES_rec.ATTRIBUTE3 := P_CSC_PLAN_LINES_Rec.ATTRIBUTE3;
73     x_pvt_CSC_PLAN_LINES_rec.ATTRIBUTE4 := P_CSC_PLAN_LINES_Rec.ATTRIBUTE4;
74     x_pvt_CSC_PLAN_LINES_rec.ATTRIBUTE5 := P_CSC_PLAN_LINES_Rec.ATTRIBUTE5;
75     x_pvt_CSC_PLAN_LINES_rec.ATTRIBUTE6 := P_CSC_PLAN_LINES_Rec.ATTRIBUTE6;
76     x_pvt_CSC_PLAN_LINES_rec.ATTRIBUTE7 := P_CSC_PLAN_LINES_Rec.ATTRIBUTE7;
77     x_pvt_CSC_PLAN_LINES_rec.ATTRIBUTE8 := P_CSC_PLAN_LINES_Rec.ATTRIBUTE8;
78     x_pvt_CSC_PLAN_LINES_rec.ATTRIBUTE9 := P_CSC_PLAN_LINES_Rec.ATTRIBUTE9;
79     x_pvt_CSC_PLAN_LINES_rec.ATTRIBUTE10 := P_CSC_PLAN_LINES_Rec.ATTRIBUTE10;
80     x_pvt_CSC_PLAN_LINES_rec.ATTRIBUTE11 := P_CSC_PLAN_LINES_Rec.ATTRIBUTE11;
81     x_pvt_CSC_PLAN_LINES_rec.ATTRIBUTE12 := P_CSC_PLAN_LINES_Rec.ATTRIBUTE12;
82     x_pvt_CSC_PLAN_LINES_rec.ATTRIBUTE13 := P_CSC_PLAN_LINES_Rec.ATTRIBUTE13;
83     x_pvt_CSC_PLAN_LINES_rec.ATTRIBUTE14 := P_CSC_PLAN_LINES_Rec.ATTRIBUTE14;
84     x_pvt_CSC_PLAN_LINES_rec.ATTRIBUTE15 := P_CSC_PLAN_LINES_Rec.ATTRIBUTE15;
85     x_pvt_CSC_PLAN_LINES_rec.ATTRIBUTE_CATEGORY := P_CSC_PLAN_LINES_Rec.ATTRIBUTE_CATEGORY;
86     x_pvt_CSC_PLAN_LINES_rec.OBJECT_VERSION_NUMBER := P_CSC_PLAN_LINES_Rec.OBJECT_VERSION_NUMBER;
87 
88   -- If there is an error in conversion precessing, raise an error.
89     IF l_any_errors
90     THEN
91         raise FND_API.G_EXC_ERROR;
92     END IF;
93 
94 END CONVERT_CSC_PLAN_LINES;
95 
96 
97 PROCEDURE convert_columns_to_rec_type(
98     P_ROW_ID                     IN   ROWID ,
99     P_LINE_ID                    IN   NUMBER,
100     P_PLAN_ID                    IN   NUMBER,
101     P_CONDITION_ID               IN   NUMBER,
102     P_CREATION_DATE              IN   DATE ,
103     P_LAST_UPDATE_DATE           IN   DATE,
104     P_CREATED_BY                 IN   NUMBER ,
105     P_LAST_UPDATED_BY            IN   NUMBER,
106     P_LAST_UPDATE_LOGIN          IN   NUMBER ,
107     P_ATTRIBUTE1                 IN   VARCHAR2 ,
108     P_ATTRIBUTE2                 IN   VARCHAR2,
109     P_ATTRIBUTE3                 IN   VARCHAR2,
110     P_ATTRIBUTE4                 IN   VARCHAR2,
111     P_ATTRIBUTE5                 IN   VARCHAR2,
112     P_ATTRIBUTE6                 IN   VARCHAR2,
113     P_ATTRIBUTE7                 IN   VARCHAR2,
114     P_ATTRIBUTE8                 IN   VARCHAR2,
115     P_ATTRIBUTE9                 IN   VARCHAR2,
116     P_ATTRIBUTE10                IN   VARCHAR2,
117     P_ATTRIBUTE11                IN   VARCHAR2,
118     P_ATTRIBUTE12                IN   VARCHAR2,
119     P_ATTRIBUTE13                IN   VARCHAR2,
120     P_ATTRIBUTE14                IN   VARCHAR2,
121     P_ATTRIBUTE15                IN   VARCHAR2,
122     P_ATTRIBUTE_CATEGORY         IN   VARCHAR2,
123     P_OBJECT_VERSION_NUMBER      IN   NUMBER ,
124     x_csc_plan_lines_rec         OUT NOCOPY  CSC_PLAN_LINES_REC_TYPE)
125 IS
126 BEGIN
127    x_csc_plan_lines_rec.ROW_ID                := P_ROW_ID;
128    x_csc_plan_lines_rec.LINE_ID               := P_LINE_ID;
129    x_csc_plan_lines_rec.PLAN_ID               := P_PLAN_ID ;
130    x_csc_plan_lines_rec.CONDITION_ID          := P_CONDITION_ID ;
131    x_csc_plan_lines_rec.CREATION_DATE         := P_CREATION_DATE ;
132    x_csc_plan_lines_rec.LAST_UPDATE_DATE      := P_LAST_UPDATE_DATE ;
133    x_csc_plan_lines_rec.CREATED_BY            := P_CREATED_BY ;
134    x_csc_plan_lines_rec.LAST_UPDATED_BY       := P_LAST_UPDATED_BY ;
135    x_csc_plan_lines_rec.LAST_UPDATE_LOGIN     := P_LAST_UPDATE_LOGIN ;
136    x_csc_plan_lines_rec.ATTRIBUTE1            := P_ATTRIBUTE1 ;
137    x_csc_plan_lines_rec.ATTRIBUTE2            := P_ATTRIBUTE2 ;
138    x_csc_plan_lines_rec.ATTRIBUTE3            := P_ATTRIBUTE3 ;
139    x_csc_plan_lines_rec.ATTRIBUTE4            := P_ATTRIBUTE4 ;
140    x_csc_plan_lines_rec.ATTRIBUTE5            := P_ATTRIBUTE5 ;
141    x_csc_plan_lines_rec.ATTRIBUTE6            := P_ATTRIBUTE6 ;
142    x_csc_plan_lines_rec.ATTRIBUTE7            := P_ATTRIBUTE7 ;
143    x_csc_plan_lines_rec.ATTRIBUTE8            := P_ATTRIBUTE8 ;
144    x_csc_plan_lines_rec.ATTRIBUTE9            := P_ATTRIBUTE9 ;
145    x_csc_plan_lines_rec.ATTRIBUTE10           := P_ATTRIBUTE10 ;
146    x_csc_plan_lines_rec.ATTRIBUTE11           := P_ATTRIBUTE11 ;
147    x_csc_plan_lines_rec.ATTRIBUTE12           := P_ATTRIBUTE12 ;
148    x_csc_plan_lines_rec.ATTRIBUTE13           := P_ATTRIBUTE13 ;
149    x_csc_plan_lines_rec.ATTRIBUTE14           := P_ATTRIBUTE14 ;
150    x_csc_plan_lines_rec.ATTRIBUTE15           := P_ATTRIBUTE15 ;
151    x_csc_plan_lines_rec.ATTRIBUTE_CATEGORY    := P_ATTRIBUTE_CATEGORY ;
152    x_csc_plan_lines_rec.OBJECT_VERSION_NUMBER := P_OBJECT_VERSION_NUMBER ;
153 
154 END convert_columns_to_rec_type;
155 
156 
157 /* Overloaded procedure to take a detailed parameter list instead of a
158    record type parameter */
159 
160 PROCEDURE Create_plan_lines(
161     P_Api_Version_Number         IN   NUMBER,
162     P_Init_Msg_List              IN   VARCHAR2,
163     P_Commit                     IN   VARCHAR2,
164     P_ROW_ID                     IN   ROWID ,
165     P_LINE_ID                    IN   NUMBER,
166     P_PLAN_ID                    IN   NUMBER,
167     P_CONDITION_ID               IN   NUMBER,
168     P_CREATION_DATE              IN   DATE ,
169     P_LAST_UPDATE_DATE           IN   DATE,
170     P_CREATED_BY                 IN   NUMBER ,
171     P_LAST_UPDATED_BY            IN   NUMBER,
172     P_LAST_UPDATE_LOGIN          IN   NUMBER,
173     P_ATTRIBUTE1                 IN   VARCHAR2 ,
174     P_ATTRIBUTE2                 IN   VARCHAR2,
175     P_ATTRIBUTE3                 IN   VARCHAR2,
176     P_ATTRIBUTE4                 IN   VARCHAR2,
177     P_ATTRIBUTE5                 IN   VARCHAR2,
178     P_ATTRIBUTE6                 IN   VARCHAR2,
179     P_ATTRIBUTE7                 IN   VARCHAR2,
180     P_ATTRIBUTE8                 IN   VARCHAR2,
181     P_ATTRIBUTE9                 IN   VARCHAR2,
182     P_ATTRIBUTE10                IN   VARCHAR2,
183     P_ATTRIBUTE11                IN   VARCHAR2,
184     P_ATTRIBUTE12                IN   VARCHAR2,
185     P_ATTRIBUTE13                IN   VARCHAR2,
186     P_ATTRIBUTE14                IN   VARCHAR2,
187     P_ATTRIBUTE15                IN   VARCHAR2,
188     P_ATTRIBUTE_CATEGORY         IN   VARCHAR2,
189     P_OBJECT_VERSION_NUMBER      IN   NUMBER ,
190     X_LINE_ID                    OUT NOCOPY  NUMBER,
191     X_OBJECT_VERSION_NUMBER      OUT NOCOPY  NUMBER,
192     X_Return_Status              OUT NOCOPY  VARCHAR2,
193     X_Msg_Count                  OUT NOCOPY  NUMBER,
194     X_Msg_Data                   OUT NOCOPY  VARCHAR2
195     )
196 IS
197    l_csc_plan_lines_rec       CSC_PLAN_LINES_PUB.CSC_PLAN_LINES_REC_TYPE;
198 
199 BEGIN
200    CONVERT_COLUMNS_TO_REC_TYPE(
201       P_ROW_ID                => p_row_id,
202       P_LINE_ID               => p_line_id,
203       P_PLAN_ID               => p_plan_id,
204       P_CONDITION_ID          => p_condition_id,
205       P_CREATION_DATE         => p_creation_date,
206       P_LAST_UPDATE_DATE      => p_last_update_date,
207       P_CREATED_BY            => p_created_by,
208       P_LAST_UPDATED_BY       => p_last_updated_by,
209       P_LAST_UPDATE_LOGIN     => p_last_update_login,
210       P_ATTRIBUTE1            => p_attribute1,
211       P_ATTRIBUTE2            => p_attribute2,
212       P_ATTRIBUTE3            => p_attribute3,
213       P_ATTRIBUTE4            => p_attribute4,
214       P_ATTRIBUTE5            => p_attribute5,
215       P_ATTRIBUTE6            => p_attribute6,
216       P_ATTRIBUTE7            => p_attribute7,
217       P_ATTRIBUTE8            => p_attribute8,
218       P_ATTRIBUTE9            => p_attribute8,
219       P_ATTRIBUTE10           => p_attribute9,
220       P_ATTRIBUTE11           => p_attribute10,
221       P_ATTRIBUTE12           => p_attribute11,
222       P_ATTRIBUTE13           => p_attribute12,
223       P_ATTRIBUTE14           => p_attribute13,
224       P_ATTRIBUTE15           => p_attribute14,
225       P_ATTRIBUTE_CATEGORY    => p_attribute15,
226       P_OBJECT_VERSION_NUMBER => p_object_version_number,
227       x_csc_plan_lines_rec    => l_csc_plan_lines_rec);
228 
229 -- issue a call to the create_plan_lines proc. that accepts record_type parameters.
230 
231    Create_plan_lines(
232       P_Api_Version_Number    => p_api_version_number,
233       P_Init_Msg_List         => p_init_msg_list,
234       P_Commit                => p_commit,
235       P_CSC_PLAN_LINES_Rec    => l_csc_plan_lines_rec,
236       X_LINE_ID               => x_line_id,
237       X_OBJECT_VERSION_NUMBER => x_object_version_number,
238       X_Return_Status         => x_return_status,
239       X_Msg_Count             => x_msg_count,
240       X_Msg_Data              => x_msg_data );
241 
242 END  Create_plan_lines; /* overloaded procedure */
243 
244 
245 PROCEDURE Create_plan_lines(
246     P_Api_Version_Number         IN   NUMBER,
247     P_Init_Msg_List              IN   VARCHAR2,
248     P_Commit                     IN   VARCHAR2,
249     P_CSC_PLAN_LINES_Rec         IN   CSC_PLAN_LINES_Rec_Type,
250     X_LINE_ID                    OUT NOCOPY  NUMBER,
251     X_OBJECT_VERSION_NUMBER      OUT NOCOPY  NUMBER,
252     X_Return_Status              OUT NOCOPY  VARCHAR2,
253     X_Msg_Count                  OUT NOCOPY  NUMBER,
254     X_Msg_Data                   OUT NOCOPY  VARCHAR2
255     )
256 IS
257    l_api_name                CONSTANT VARCHAR2(30) := 'Create_plan_lines';
258    l_api_version_number      CONSTANT NUMBER       := 1.0;
259    l_pvt_CSC_PLAN_LINES_rec  CSC_PLAN_LINES_PVT.CSC_PLAN_LINES_Rec_Type;
260 BEGIN
261       -- Standard Start of API savepoint
262       SAVEPOINT CREATE_PLAN_LINES_PUB;
263 
264       -- Standard call to check for call compatibility.
265       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
266                                            p_api_version_number,
267                                            l_api_name,
268                                            G_PKG_NAME)
269       THEN
270           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
271       END IF;
272 
273       -- Initialize message list if p_init_msg_list is set to TRUE.
274       IF FND_API.to_Boolean( p_init_msg_list )
275       THEN
276           FND_MSG_PUB.initialize;
277       END IF;
278 
279       -- Initialize API return status to SUCCESS
280       x_return_status := FND_API.G_RET_STS_SUCCESS;
281 
282       -- Convert the values to ids
283       CONVERT_CSC_PLAN_LINES (
284             p_CSC_PLAN_LINES_rec       =>  p_CSC_PLAN_LINES_rec,
285             x_pvt_CSC_PLAN_LINES_rec   =>  l_pvt_CSC_PLAN_LINES_rec);
286 
287     -- Calling Private package: Create_PLAN_LINES
288     -- Hint: Primary key needs to be returned
289 
290       CSC_PLAN_LINES_PVT.Create_plan_lines(
291          P_Api_Version_Number         => 1,
292          P_Init_Msg_List              => FND_API.G_FALSE,
293          P_Commit                     => FND_API.G_FALSE,
294          P_Validation_Level           => FND_API.G_VALID_LEVEL_FULL,
295          P_CSC_PLAN_LINES_Rec         => l_pvt_CSC_PLAN_LINES_Rec ,
296          X_LINE_ID                    => x_LINE_ID,
297          X_OBJECT_VERSION_NUMBER      => x_OBJECT_VERSION_NUMBER,
298          X_Return_Status              => x_return_status,
299          X_Msg_Count                  => x_msg_count,
300          X_Msg_Data                   => x_msg_data);
301 
302       -- Check return status from the above procedure call
303       IF x_return_status = FND_API.G_RET_STS_ERROR then
304           raise FND_API.G_EXC_ERROR;
305       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
306           raise FND_API.G_EXC_UNEXPECTED_ERROR;
307       END IF;
308 
309       -- Standard check for p_commit
310       IF FND_API.to_Boolean( p_commit )
311       THEN
312           COMMIT WORK;
313       END IF;
314 
315       -- Standard call to get message count and if count is 1, get message info.
316       FND_MSG_PUB.Count_And_Get
317       (  p_count          =>   x_msg_count,
318          p_data           =>   x_msg_data );
319 
320 EXCEPTION
321    WHEN FND_API.G_EXC_ERROR THEN
322       CSC_CORE_UTILS_PVT.HANDLE_EXCEPTIONS(
323          P_API_NAME        => L_API_NAME,
324          P_PKG_NAME        => G_PKG_NAME,
325          P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR,
326          P_PACKAGE_TYPE    => CSC_CORE_UTILS_PVT.G_PUB,
327          X_MSG_COUNT       => X_MSG_COUNT,
328          X_MSG_DATA        => X_MSG_DATA,
329          X_RETURN_STATUS   => X_RETURN_STATUS);
330        APP_EXCEPTION.RAISE_EXCEPTION;
331 
332    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
333       CSC_CORE_UTILS_PVT.HANDLE_EXCEPTIONS(
334          P_API_NAME        => L_API_NAME,
335          P_PKG_NAME        => G_PKG_NAME,
336          P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR,
337          P_PACKAGE_TYPE    => CSC_CORE_UTILS_PVT.G_PUB,
338          X_MSG_COUNT       => X_MSG_COUNT,
339          X_MSG_DATA        => X_MSG_DATA,
340          X_RETURN_STATUS   => X_RETURN_STATUS);
341        APP_EXCEPTION.RAISE_EXCEPTION;
342 
343    WHEN OTHERS THEN
344       CSC_CORE_UTILS_PVT.HANDLE_EXCEPTIONS(
345          P_API_NAME        => L_API_NAME,
346          P_PKG_NAME        => G_PKG_NAME,
347          P_EXCEPTION_LEVEL => CSC_CORE_UTILS_PVT.G_MSG_LVL_OTHERS,
348          P_PACKAGE_TYPE    => CSC_CORE_UTILS_PVT.G_PUB,
349          X_MSG_COUNT       => X_MSG_COUNT,
350          X_MSG_DATA        => X_MSG_DATA,
351          X_RETURN_STATUS   => X_RETURN_STATUS);
352        APP_EXCEPTION.RAISE_EXCEPTION;
353 
354 End Create_plan_lines;
355 
356 
357 /* Overloaded procedure to take a detailed parameter list instead of a
358    record type parameter */
359 
360 PROCEDURE Update_plan_lines(
361     P_Api_Version_Number         IN   NUMBER,
362     P_Init_Msg_List              IN   VARCHAR2,
363     P_Commit                     IN   VARCHAR2,
364     P_ROW_ID                     IN   ROWID,
365     P_LINE_ID                    IN   NUMBER,
366     P_PLAN_ID                    IN   NUMBER,
367     P_CONDITION_ID               IN   NUMBER,
368     P_CREATION_DATE              IN   DATE,
369     P_LAST_UPDATE_DATE           IN   DATE,
370     P_CREATED_BY                 IN   NUMBER,
371     P_LAST_UPDATED_BY            IN   NUMBER,
372     P_LAST_UPDATE_LOGIN          IN   NUMBER,
373     P_ATTRIBUTE1                 IN   VARCHAR2,
374     P_ATTRIBUTE2                 IN   VARCHAR2,
375     P_ATTRIBUTE3                 IN   VARCHAR2,
376     P_ATTRIBUTE4                 IN   VARCHAR2,
377     P_ATTRIBUTE5                 IN   VARCHAR2,
378     P_ATTRIBUTE6                 IN   VARCHAR2,
379     P_ATTRIBUTE7                 IN   VARCHAR2,
380     P_ATTRIBUTE8                 IN   VARCHAR2,
381     P_ATTRIBUTE9                 IN   VARCHAR2,
382     P_ATTRIBUTE10                IN   VARCHAR2,
383     P_ATTRIBUTE11                IN   VARCHAR2,
384     P_ATTRIBUTE12                IN   VARCHAR2,
385     P_ATTRIBUTE13                IN   VARCHAR2,
386     P_ATTRIBUTE14                IN   VARCHAR2,
387     P_ATTRIBUTE15                IN   VARCHAR2,
388     P_ATTRIBUTE_CATEGORY         IN   VARCHAR2,
389     P_OBJECT_VERSION_NUMBER      IN   NUMBER,
390     X_OBJECT_VERSION_NUMBER      OUT NOCOPY  NUMBER,
391     X_Return_Status              OUT NOCOPY  VARCHAR2,
392     X_Msg_Count                  OUT NOCOPY  NUMBER,
393     X_Msg_Data                   OUT NOCOPY  VARCHAR2)
394 IS
395 
396    l_csc_plan_lines_rec       CSC_PLAN_LINES_PUB.CSC_PLAN_LINES_REC_TYPE;
397 
398 BEGIN
399    CONVERT_COLUMNS_TO_REC_TYPE(
400       P_ROW_ID                => p_row_id,
401       P_LINE_ID               => p_line_id,
402       P_PLAN_ID               => p_plan_id,
403       P_CONDITION_ID          => p_condition_id,
404       P_CREATION_DATE         => p_creation_date,
405       P_LAST_UPDATE_DATE      => p_last_update_date,
406       P_CREATED_BY            => p_created_by,
407       P_LAST_UPDATED_BY       => p_last_updated_by,
408       P_LAST_UPDATE_LOGIN     => p_last_update_login,
409       P_ATTRIBUTE1            => p_attribute1,
410       P_ATTRIBUTE2            => p_attribute2,
411       P_ATTRIBUTE3            => p_attribute3,
412       P_ATTRIBUTE4            => p_attribute4,
413       P_ATTRIBUTE5            => p_attribute5,
414       P_ATTRIBUTE6            => p_attribute6,
415       P_ATTRIBUTE7            => p_attribute7,
416       P_ATTRIBUTE8            => p_attribute8,
417       P_ATTRIBUTE9            => p_attribute8,
418       P_ATTRIBUTE10           => p_attribute9,
419       P_ATTRIBUTE11           => p_attribute10,
420       P_ATTRIBUTE12           => p_attribute11,
421       P_ATTRIBUTE13           => p_attribute12,
422       P_ATTRIBUTE14           => p_attribute13,
423       P_ATTRIBUTE15           => p_attribute14,
424       P_ATTRIBUTE_CATEGORY    => p_attribute15,
425       P_OBJECT_VERSION_NUMBER => p_object_version_number,
426       x_csc_plan_lines_rec    => l_csc_plan_lines_rec);
427 
428 -- issue a call to the create_plan_lines proc. that accepts record_type parameters.
429 
430    Update_plan_lines(
431       P_Api_Version_Number    => p_api_version_number,
432       P_Init_Msg_List         => p_init_msg_list,
433       P_Commit                => p_commit,
434       P_CSC_PLAN_LINES_Rec    => l_csc_plan_lines_rec,
435       X_OBJECT_VERSION_NUMBER => x_object_version_number,
436       X_Return_Status         => x_return_status,
437       X_Msg_Count             => x_msg_count,
438       X_Msg_Data              => x_msg_data );
439 
440 END  update_plan_lines;  /* end of overloaded update */
441 
442 
443 PROCEDURE Update_plan_lines(
444     P_Api_Version_Number         IN   NUMBER,
445     P_Init_Msg_List              IN   VARCHAR2,
446     P_Commit                     IN   VARCHAR2,
447     P_CSC_PLAN_LINES_Rec         IN   CSC_PLAN_LINES_Rec_Type,
448     X_OBJECT_VERSION_NUMBER      OUT NOCOPY  NUMBER,
449     X_Return_Status              OUT NOCOPY  VARCHAR2,
450     X_Msg_Count                  OUT NOCOPY  NUMBER,
451     X_Msg_Data                   OUT NOCOPY  VARCHAR2
452     )
453 IS
454    l_api_name                CONSTANT VARCHAR2(30) := 'Update_plan_lines';
455    l_api_version_number      CONSTANT NUMBER       := 1.0;
456    l_pvt_CSC_PLAN_LINES_rec  CSC_PLAN_LINES_PVT.CSC_PLAN_LINES_Rec_Type;
457 BEGIN
458       -- Standard Start of API savepoint
459       SAVEPOINT UPDATE_PLAN_LINES_PUB;
460 
461       -- Standard call to check for call compatibility.
462       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
463                          	           p_api_version_number,
464                                            l_api_name,
465                                            G_PKG_NAME)
466       THEN
467           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
468       END IF;
469 
470       -- Initialize message list if p_init_msg_list is set to TRUE.
471       IF FND_API.to_Boolean( p_init_msg_list )
472       THEN
473           FND_MSG_PUB.initialize;
474       END IF;
475 
476       -- Initialize API return status to SUCCESS
477       x_return_status := FND_API.G_RET_STS_SUCCESS;
478 
479       -- Convert the values to ids
480       CONVERT_CSC_PLAN_LINES (
481             p_CSC_PLAN_LINES_rec       =>  p_CSC_PLAN_LINES_rec,
482             x_pvt_CSC_PLAN_LINES_rec   =>  l_pvt_CSC_PLAN_LINES_rec);
483 
484       -- Call private API to perform validations and the update.
485       CSC_plan_lines_PVT.Update_plan_lines(
486          P_Api_Version_Number         => 1.0,
487          P_Init_Msg_List              => FND_API.G_FALSE,
488          P_Commit                     => p_commit,
489          P_Validation_Level           => FND_API.G_VALID_LEVEL_FULL,
490          P_CSC_PLAN_LINES_Rec         => l_pvt_CSC_PLAN_LINES_Rec ,
491          X_OBJECT_VERSION_NUMBER      => x_object_version_number,
492          X_Return_Status              => x_return_status,
493          X_Msg_Count                  => x_msg_count,
494          X_Msg_Data                   => x_msg_data);
495 
496       -- Check return status from the above procedure call
497       IF x_return_status = FND_API.G_RET_STS_ERROR then
498           raise FND_API.G_EXC_ERROR;
499       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
500           raise FND_API.G_EXC_UNEXPECTED_ERROR;
501       END IF;
502 
503       -- Standard check for p_commit
504       IF FND_API.to_Boolean( p_commit )
505       THEN
506           COMMIT WORK;
507       END IF;
508 
509       -- Standard call to get message count and if count is 1, get message info.
510       FND_MSG_PUB.Count_And_Get
511       (  p_count          =>   x_msg_count,
512          p_data           =>   x_msg_data );
513 
514 EXCEPTION
515    WHEN FND_API.G_EXC_ERROR THEN
516       CSC_CORE_UTILS_PVT.HANDLE_EXCEPTIONS(
517          P_API_NAME        => L_API_NAME,
518          P_PKG_NAME        => G_PKG_NAME,
519          P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR,
520          P_PACKAGE_TYPE    => CSC_CORE_UTILS_PVT.G_PUB,
521          X_MSG_COUNT       => X_MSG_COUNT,
522          X_MSG_DATA        => X_MSG_DATA,
523          X_RETURN_STATUS   => X_RETURN_STATUS);
524        APP_EXCEPTION.RAISE_EXCEPTION;
525 
526    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
527       CSC_CORE_UTILS_PVT.HANDLE_EXCEPTIONS(
528          P_API_NAME        => L_API_NAME,
529          P_PKG_NAME        => G_PKG_NAME,
530          P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR,
531          P_PACKAGE_TYPE    => CSC_CORE_UTILS_PVT.G_PUB,
532          X_MSG_COUNT       => X_MSG_COUNT,
533          X_MSG_DATA        => X_MSG_DATA,
534          X_RETURN_STATUS   => X_RETURN_STATUS);
535        APP_EXCEPTION.RAISE_EXCEPTION;
536 
537    WHEN OTHERS THEN
538       CSC_CORE_UTILS_PVT.HANDLE_EXCEPTIONS(
539          P_API_NAME        => L_API_NAME,
540          P_PKG_NAME        => G_PKG_NAME,
541          P_EXCEPTION_LEVEL => CSC_CORE_UTILS_PVT.G_MSG_LVL_OTHERS,
542          P_PACKAGE_TYPE    => CSC_CORE_UTILS_PVT.G_PUB,
543          X_MSG_COUNT       => X_MSG_COUNT,
544          X_MSG_DATA        => X_MSG_DATA,
545          X_RETURN_STATUS   => X_RETURN_STATUS);
546        APP_EXCEPTION.RAISE_EXCEPTION;
547 
548 End Update_plan_lines;
549 
550 
551 -- Hint: Add corresponding delete detail table procedures if it's master-detail relationship.
552 --       The Master delete procedure may not be needed depends on different business requirements.
553 PROCEDURE Delete_plan_lines(
554     P_Api_Version_Number         IN   NUMBER,
555     P_Init_Msg_List              IN   VARCHAR2,
556     P_Commit                     IN   VARCHAR2,
557     P_PLAN_ID                    IN   NUMBER  ,
558     P_LINE_ID                    IN   NUMBER  ,
559     X_Return_Status              OUT NOCOPY  VARCHAR2,
560     X_Msg_Count                  OUT NOCOPY  NUMBER,
561     X_Msg_Data                   OUT NOCOPY  VARCHAR2
562     )
563 IS
564    l_api_name                CONSTANT VARCHAR2(30) := 'Delete_plan_lines';
565    l_api_version_number      CONSTANT NUMBER       := 1.0;
566    l_pvt_CSC_PLAN_LINES_rec  CSC_PLAN_LINES_PVT.CSC_PLAN_LINES_Rec_Type;
567 BEGIN
568       -- Standard Start of API savepoint
569       SAVEPOINT DELETE_PLAN_LINES_PUB;
570 
571       -- Standard call to check for call compatibility.
572       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
573                          	           p_api_version_number,
574                                            l_api_name,
575                                            G_PKG_NAME)
576       THEN
577           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
578       END IF;
579 
580       -- Initialize message list if p_init_msg_list is set to TRUE.
581       IF FND_API.to_Boolean( p_init_msg_list )
582       THEN
583           FND_MSG_PUB.initialize;
584       END IF;
585 
586       -- Initialize API return status to SUCCESS
587       x_return_status := FND_API.G_RET_STS_SUCCESS;
588 
589       CSC_plan_lines_PVT.Delete_plan_lines(
590          P_Api_Version_Number         => 1.0,
591          P_Init_Msg_List              => FND_API.G_FALSE,
592          P_Commit                     => p_commit,
593 	    P_PLAN_ID                    => p_plan_id,
594          P_LINE_ID                    => p_line_id,
595          X_Return_Status              => x_return_status,
596          X_Msg_Count                  => x_msg_count,
597          X_Msg_Data                   => x_msg_data);
598 
599       -- Check return status from the above procedure call
600       IF x_return_status = FND_API.G_RET_STS_ERROR then
601           raise FND_API.G_EXC_ERROR;
602       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
603           raise FND_API.G_EXC_UNEXPECTED_ERROR;
604       END IF;
605 
606       -- Standard check for p_commit
607       IF FND_API.to_Boolean( p_commit )
608       THEN
609           COMMIT WORK;
610       END IF;
611 
612       -- Standard call to get message count and if count is 1, get message info.
613       FND_MSG_PUB.Count_And_Get
614       (  p_count          =>   x_msg_count,
615          p_data           =>   x_msg_data );
616 
617 EXCEPTION
618    WHEN FND_API.G_EXC_ERROR THEN
619       CSC_CORE_UTILS_PVT.HANDLE_EXCEPTIONS(
620          P_API_NAME        => L_API_NAME,
621          P_PKG_NAME        => G_PKG_NAME,
622          P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR,
623          P_PACKAGE_TYPE    => CSC_CORE_UTILS_PVT.G_PUB,
624          X_MSG_COUNT       => X_MSG_COUNT,
625          X_MSG_DATA        => X_MSG_DATA,
626          X_RETURN_STATUS   => X_RETURN_STATUS);
627        APP_EXCEPTION.RAISE_EXCEPTION;
628 
629    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
630       CSC_CORE_UTILS_PVT.HANDLE_EXCEPTIONS(
631          P_API_NAME        => L_API_NAME,
632          P_PKG_NAME        => G_PKG_NAME,
633          P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR,
634          P_PACKAGE_TYPE    => CSC_CORE_UTILS_PVT.G_PUB,
635          X_MSG_COUNT       => X_MSG_COUNT,
636          X_MSG_DATA        => X_MSG_DATA,
637          X_RETURN_STATUS   => X_RETURN_STATUS);
638        APP_EXCEPTION.RAISE_EXCEPTION;
639 
640    WHEN OTHERS THEN
641       CSC_CORE_UTILS_PVT.HANDLE_EXCEPTIONS(
642          P_API_NAME        => L_API_NAME,
643          P_PKG_NAME        => G_PKG_NAME,
644          P_EXCEPTION_LEVEL => CSC_CORE_UTILS_PVT.G_MSG_LVL_OTHERS,
645          P_PACKAGE_TYPE    => CSC_CORE_UTILS_PVT.G_PUB,
646          X_MSG_COUNT       => X_MSG_COUNT,
647          X_MSG_DATA        => X_MSG_DATA,
648          X_RETURN_STATUS   => X_RETURN_STATUS);
649        APP_EXCEPTION.RAISE_EXCEPTION;
650 
651 End Delete_plan_lines;
652 
653 End CSC_PLAN_LINES_PUB;