DBA Data[Home] [Help]

PACKAGE BODY: APPS.CSF_DEBRIEF_PUB

Source


1 PACKAGE BODY CSF_DEBRIEF_PUB as
2 /* $Header: csfpdbfb.pls 120.2 2007/10/17 08:13:35 hhaugeru noship $ */
3 -- Start of Comments
4 -- Package name     : CSF_DEBRIEF_PUB
5 -- Purpose          :
6 -- History          :
7 -- NOTE             :
8 -- End of Comments
9 
10 G_PKG_NAME CONSTANT VARCHAR2(30):= 'CSF_DEBRIEF_PUB';
11 G_FILE_NAME CONSTANT VARCHAR2(12) := 'csfpdbfb.pls';
12 
13 PROCEDURE Convert_Debrief_Value_To_Id (
14                 p_Debrief_rec          IN  Debrief_REC_TYPE,
15                 x_pvt_Debrief_rec      OUT NOCOPY CSF_DEBRIEF_PVT.Debrief_REC_TYPE
16   )
17   IS
18       l_any_errors      BOOLEAN := FALSE;
19       l_return_status   VARCHAR2(1);
20       l_is_duplicate    VARCHAR2(10);
21       l_val             varchar2(30);
22       l_id              NUMBER;
23       l_status_code     VARCHAR2(30) := NULL;
24 
25       l_pvt_Debrief_rec     csf_debrief_pvt.Debrief_REC_TYPE;
26 
27   BEGIN
28       -- Now copy the rest of the columns to the private record
29 
30 
31 
32 
33       --
34       l_pvt_Debrief_rec.debrief_header_id 		:= 	p_Debrief_rec.debrief_header_id;
35       l_pvt_Debrief_rec.debrief_number			:= 	p_Debrief_rec.debrief_number;
36       l_pvt_Debrief_rec.debrief_date			:= 	p_Debrief_rec.debrief_date;
37       l_pvt_Debrief_rec.debrief_status_id 		:= 	p_Debrief_rec.debrief_status_id;
38       l_pvt_Debrief_rec.task_assignment_id		:= 	p_Debrief_rec.task_assignment_id;
39       l_pvt_Debrief_rec.attribute_category  		:= 	p_Debrief_rec.attribute_category;
40 	l_pvt_Debrief_rec.last_Update_date			:=    p_Debrief_rec.last_update_date;
41       l_pvt_Debrief_rec.attribute1    			:= 	p_Debrief_rec.attribute1;
42       l_pvt_Debrief_rec.attribute2    			:= 	p_Debrief_rec.attribute2;
43       l_pvt_Debrief_rec.attribute3    			:= 	p_Debrief_rec.attribute3;
44       l_pvt_Debrief_rec.attribute4    			:= 	p_Debrief_rec.attribute4;
45       l_pvt_Debrief_rec.attribute5    			:= 	p_Debrief_rec.attribute5;
46       l_pvt_Debrief_rec.attribute6    			:= 	p_Debrief_rec.attribute6;
47       l_pvt_Debrief_rec.attribute7    			:= 	p_Debrief_rec.attribute7;
48       l_pvt_Debrief_rec.attribute8    			:= 	p_Debrief_rec.attribute8;
49       l_pvt_Debrief_rec.attribute9    			:= 	p_Debrief_rec.attribute9;
50       l_pvt_Debrief_rec.attribute10   			:= 	p_Debrief_rec.attribute10;
51       l_pvt_Debrief_rec.attribute11   			:= 	p_Debrief_rec.attribute11;
52       l_pvt_Debrief_rec.attribute12   			:= 	p_Debrief_rec.attribute12;
53       l_pvt_Debrief_rec.attribute13   			:= 	p_Debrief_rec.attribute13;
54       l_pvt_Debrief_rec.attribute14   			:= 	p_Debrief_rec.attribute14;
55       l_pvt_Debrief_rec.attribute15   			:= 	p_Debrief_rec.attribute15;
56       l_pvt_Debrief_rec.created_by         :=  p_Debrief_rec.created_by;
57       l_pvt_Debrief_rec.creation_date      :=  p_Debrief_rec.creation_date;
58       l_pvt_Debrief_rec.last_updated_by    :=  p_Debrief_rec.last_updated_by;
59       l_pvt_Debrief_rec.last_update_date   :=  p_Debrief_rec.last_update_date;
60       l_pvt_Debrief_rec.last_update_login  :=  p_Debrief_rec.last_update_login;
61 
62       l_pvt_Debrief_rec.object_version_number		:= 	p_Debrief_rec.object_version_number;
63       l_pvt_Debrief_rec.TRAVEL_START_TIME 		:= 	p_Debrief_rec.TRAVEL_START_TIME;
64       l_pvt_Debrief_rec.TRAVEL_END_TIME 		:= 	p_Debrief_rec.TRAVEL_END_TIME;
65       l_pvt_Debrief_rec.TRAVEL_DISTANCE_IN_KM  		:= 	p_Debrief_rec.TRAVEL_DISTANCE_IN_KM;
66 
67 	 -- End
68       x_pvt_Debrief_rec := l_pvt_Debrief_rec;
69       -- If there was an error in processing the row, then raise an error
70       --
71       IF l_any_errors
72       THEN
73           raise FND_API.G_EXC_ERROR;
74       END IF;
75 
76 END Convert_Debrief_Value_To_Id;
77 
78 /********************  need to be deleted later
79 
80 PROCEDURE Convert_Interest_Values_To_Ids (p_interest_type                 IN  VARCHAR2,
81                                             p_interest_type_id              IN  NUMBER,
82                                             p_primary_interest_code         IN  VARCHAR2,
83                                             p_primary_interest_code_id      IN  NUMBER,
84                                             p_secondary_interest_code       IN  VARCHAR2,
85                                             p_secondary_interest_code_id    IN  NUMBER,
86                                             p_return_status                 OUT NOCOPY VARCHAR2,
87                                             p_out_interest_type_id          OUT NOCOPY NUMBER,
88                                             p_out_primary_interest_code_id  OUT NOCOPY NUMBER,
89                                             p_out_second_interest_code_id   OUT NOCOPY NUMBER
90                                             ) IS
91     Cursor C_Get_Int_Type (X_Int_Type VARCHAR2) IS
92       SELECT  interest_type_id
93       FROM  as_interest_types
94       WHERE nls_upper(X_Int_Type) = nls_upper(interest_type)
95       and (interest_type like nls_upper(substr(X_Int_Type, 1, 1) || '%') or
96          interest_type like lower(substr(X_Int_Type, 1, 1) || '%'));
97 
98     Cursor C_Get_Int_Code (X_Int_Code VARCHAR2, X_Int_Type_Id NUMBER) IS
99       SELECT  interest_code_id
100       FROM  as_interest_codes
101      WHERE nls_upper(X_Int_Code) = nls_upper(code)
102       and   interest_type_id = X_Int_Type_Id;
103 
104     l_interest_type_id  NUMBER;
105     l_interest_code_id  NUMBER;
106     l_secondary_interest_code_id  NUMBER;
107   BEGIN
108 
109     p_return_status := FND_API.G_RET_STS_SUCCESS;
110 
111     -- Initialize Out Variables
112     p_out_interest_type_id    := NULL;
113     p_out_primary_interest_code_id  := NULL;
114     p_out_second_interest_code_id := NULL;
115 
116     -- Convert Interest Type
117     --
118     IF (p_interest_type_id is not NULL and
119         p_interest_type_id <> FND_API.G_MISS_NUM)
120     THEN
121       p_out_interest_type_id := p_interest_type_id;
122       l_interest_type_id := p_interest_type_id;
123 
124       IF (p_interest_type is not NULL and
125           p_interest_type <> FND_API.G_MISS_CHAR)
126       THEN
127         IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS)
128         THEN
129           FND_MESSAGE.Set_Name ('CSF', 'API_ATTRIBUTE_IGNORED');
130           FND_MESSAGE.Set_Token ('COLUMN', 'INTEREST_TYPE', FALSE);
131           FND_MSG_PUB.Add;
132         END IF;
133       END IF;
134 
135     ELSIF (p_interest_type is not NULL and
136           p_interest_type <> FND_API.G_MISS_CHAR)
137     THEN
138       OPEN C_Get_Int_Type ( p_interest_type );
139       FETCH C_Get_Int_Type INTO l_interest_type_id;
140       CLOSE C_Get_Int_Type;
141 
142       IF (l_interest_type_id IS NULL)
143       THEN
144         IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
145         THEN
146           FND_MESSAGE.Set_Name ('CSF', 'API_ATTRIBUTE_CONVERSION_ERROR');
147           FND_MESSAGE.Set_Token ('COLUMN', 'INTEREST_TYPE', FALSE);
148           FND_MESSAGE.Set_Token('VALUE', p_interest_type, FALSE);
149           FND_MSG_PUB.Add;
150         END IF;
151 
152         raise FND_API.G_EXC_ERROR;
153 
154       ELSE
155         p_out_interest_type_id := l_interest_type_id;
156       END IF;
157 
158     ELSE
159       -- If no interest type (value or id) exists, then this row is invalid
160       --
161       IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
162       THEN
163         FND_MESSAGE.Set_Name ('CSF','API_MISSING_ID');
164         FND_MESSAGE.Set_Token ('COLUMN', 'INTEREST_TYPE', FALSE);
165         FND_MSG_PUB.Add;
166       END IF;
167 
168       raise FND_API.G_EXC_ERROR;
169     END IF;
170 
171     -- Convert Primary Code
172     --
173     IF (p_primary_interest_code_id is not NULL and
174         p_primary_interest_code_id <> FND_API.G_MISS_NUM)
175     THEN
176       p_out_primary_interest_code_id := p_primary_interest_code_id;
177       l_interest_code_id := p_primary_interest_code_id;
178 
179       IF (p_primary_interest_code is not NULL and
180           p_primary_interest_code <> FND_API.G_MISS_CHAR)
181       THEN
182         IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS)
183         THEN
184           FND_MESSAGE.Set_Name ('CSF','API_ATTRIBUTE_IGNORED');
185           FND_MESSAGE.Set_Token ('COLUMN', 'PRIMARY_INTEREST_CODE', FALSE);
186           FND_MSG_PUB.Add;
187         END IF;
188       END IF;
189 
190     ELSIF (p_primary_interest_code is not NULL and
191            p_primary_interest_code <> FND_API.G_MISS_CHAR)
192     THEN
193       OPEN C_Get_Int_Code ( p_primary_interest_code,
194                 l_interest_type_id );
195       FETCH C_Get_Int_Code INTO l_interest_code_id;
196       CLOSE C_Get_Int_Code;
197 
198       IF (l_interest_code_id IS NULL)
199       THEN
200         IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
201         THEN
202           FND_MESSAGE.Set_Name ('CSF', 'API_ATTRIBUTE_CONVERSION_ERROR');
203           FND_MESSAGE.Set_Token ('COLUMN', 'PRIMARY_INTEREST_CODE', FALSE);
204           FND_MESSAGE.Set_Token('VALUE', p_primary_interest_code, FALSE);
205           FND_MSG_PUB.Add;
206         END IF;
207 
208         p_return_status := FND_API.G_RET_STS_ERROR;
209 
210       ELSE
211         p_out_primary_interest_code_id := l_interest_code_id;
212       END IF;
213     END IF;
214 
215     -- Convert Secondary Code
216     --
217     IF (p_secondary_interest_code_id is not NULL and
218         p_secondary_interest_code_id <> FND_API.G_MISS_NUM)
219     THEN
220       p_out_second_interest_code_id := p_secondary_interest_code_id;
221       l_secondary_interest_code_id := p_secondary_interest_code_id;
222 
223       IF (p_secondary_interest_code is not NULL and
224           p_secondary_interest_code <> FND_API.G_MISS_CHAR)
225       THEN
226         IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS)
227         THEN
228           FND_MESSAGE.Set_Name ('CSF', 'API_ATTRIBUTE_IGNORED');
229           FND_MESSAGE.Set_Token ('COLUMN', 'SECONDARY_INTEREST_CODE', FALSE);
230           FND_MSG_PUB.Add;
231         END IF;
232       END IF;
233 
234     ELSIF (p_secondary_interest_code is not NULL and
235            p_secondary_interest_code <> FND_API.G_MISS_CHAR)
236     THEN
237       OPEN C_Get_Int_Code ( p_secondary_interest_code,
238       			    l_interest_type_id );
239       FETCH C_Get_Int_Code INTO l_secondary_interest_code_id;
240       CLOSE C_Get_Int_Code;
241 
242       IF (l_secondary_interest_code_id IS NULL)
243       THEN
244         IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
245         THEN
246           FND_MESSAGE.Set_Name ('CSF', 'API_ATTRIBUTE_CONVERSION_ERROR');
247           FND_MESSAGE.Set_Token ('COLUMN', 'SECONDARY_INTEREST_CODE', FALSE);
248           FND_MESSAGE.Set_Token('VALUE', p_secondary_interest_code, FALSE);
249           FND_MSG_PUB.Add;
250         END IF;
251         p_return_status := FND_API.G_RET_STS_ERROR;
252 
253       ELSE
254         p_out_second_interest_code_id := l_secondary_interest_code_id;
255 
256       END IF;
257     END IF;
258 
259 END Convert_Interest_Values_To_Ids;
260 
261  ****************************/
262 
263 PROCEDURE Conv_DEBRIEF_LINE_ValToId(
264          P_DEBRIEF_LINE_tbl        IN    DEBRIEF_LINE_tbl_Type,
265          x_pvt_DEBRIEF_LINE_tbl    OUT NOCOPY   CSF_DEBRIEF_PVT.DEBRIEF_LINE_tbl_Type
266 )
267 IS
268 l_any_errors        BOOLEAN   := FALSE;
269 l_any_row_errors    BOOLEAN   := FALSE;
270 l_return_status     VARCHAR2(1);
271 l_dummy_description VARCHAR2(30);
272 l_pub_debrief_line_rec     debrief_line_rec_type;
273 l_pvt_debrief_line_rec     CSF_DEBRIEF_PVT.debrief_line_rec_type;
274 lx_pvt_debrief_line_tbl		CSF_DEBRIEF_PVT.debrief_line_tbl_type;
275 l_count             NUMBER := p_debrief_line_tbl.count;
276 p_debrief_line_rec     debrief_line_rec_type;
277 x_return_status     VARCHAR2(1);
278 x_msg_data          VARCHAR2(2000);
279 x_msg_count         NUMBER;
280 
281 
282 BEGIN
283  /*
284 lx_pvt_debrief_line_tbl  	:=	p_debrief_line_tbl;
285  x_pvt_debrief_line_tbl 	:=    lx_pvt_debrief_line_tbl;
286  */
287 
288 
289 FOR l_curr_row in 1..l_count
290 LOOP
291  BEGIN
292 
293   -- Now copy all (the rest ) of the columns to the private record
294 p_debrief_line_rec	:=	p_debrief_line_tbl(l_curr_row);
295 
296 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).DEBRIEF_LINE_ID 	:= P_DEBRIEF_LINE_Rec.DEBRIEF_LINE_ID;
297 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).LAST_UPDATE_DATE 	:= P_DEBRIEF_LINE_Rec.LAST_UPDATE_DATE;
298 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).LAST_UPDATED_BY 	:= P_DEBRIEF_LINE_Rec.LAST_UPDATED_BY;
299 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).CREATION_DATE 	:= P_DEBRIEF_LINE_Rec.CREATION_DATE;
300 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).CREATED_BY 		:= P_DEBRIEF_LINE_Rec.CREATED_BY;
301 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).LAST_UPDATE_LOGIN 	:= P_DEBRIEF_LINE_Rec.LAST_UPDATE_LOGIN;
302 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).DEBRIEF_HEADER_ID	:= P_DEBRIEF_LINE_Rec.DEBRIEF_HEADER_ID;
303 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).DEBRIEF_LINE_NUMBER := P_DEBRIEF_LINE_Rec. DEBRIEF_LINE_NUMBER ;
304 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).SERVICE_DATE		:= P_DEBRIEF_LINE_Rec.SERVICE_DATE;
305 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).BUSINESS_PROCESS_ID := P_DEBRIEF_LINE_Rec.BUSINESS_PROCESS_ID;
306 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).TXN_BILLING_TYPE_ID
307 					:= P_DEBRIEF_LINE_Rec.TXN_BILLING_TYPE_ID;
308 
309 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).INVENTORY_ITEM_ID	:= P_DEBRIEF_LINE_Rec.INVENTORY_ITEM_ID;
310 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).INSTANCE_ID	:= P_DEBRIEF_LINE_Rec.INSTANCE_ID;
311 
312 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).ISSUING_INVENTORY_ORG_ID
313 									:= P_DEBRIEF_LINE_Rec.ISSUING_INVENTORY_ORG_ID ;
314 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).RECEIVING_INVENTORY_ORG_ID
315 									:= P_DEBRIEF_LINE_Rec.RECEIVING_INVENTORY_ORG_ID;
316 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).ISSUING_SUB_INVENTORY_CODE
317 									:= P_DEBRIEF_LINE_Rec.ISSUING_SUB_INVENTORY_CODE;
318 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).RECEIVING_SUB_INVENTORY_CODE
319 									:= P_DEBRIEF_LINE_Rec.RECEIVING_SUB_INVENTORY_CODE;
320 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).ISSUING_LOCATOR_ID		:= P_DEBRIEF_LINE_Rec.ISSUING_LOCATOR_ID;
321 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).RECEIVING_LOCATOR_ID	:= P_DEBRIEF_LINE_Rec.RECEIVING_LOCATOR_ID;
322 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).PARENT_PRODUCT_ID		:= P_DEBRIEF_LINE_Rec.PARENT_PRODUCT_ID;
323 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).REMOVED_PRODUCT_ID		:= P_DEBRIEF_LINE_Rec.REMOVED_PRODUCT_ID;
324 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).STATUS_OF_RECEIVED_PART	:= P_DEBRIEF_LINE_Rec.STATUS_OF_RECEIVED_PART;
325 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).ITEM_SERIAL_NUMBER		:= P_DEBRIEF_LINE_Rec.ITEM_SERIAL_NUMBER;
326 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).ITEM_REVISION		:= P_DEBRIEF_LINE_Rec.ITEM_REVISION;
327 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).ITEM_LOTNUMBER		:= P_DEBRIEF_LINE_Rec.ITEM_LOTNUMBER;
328 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).UOM_CODE			:= P_DEBRIEF_LINE_Rec.UOM_CODE;
329 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).QUANTITY			:= P_DEBRIEF_LINE_Rec.QUANTITY;
330 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).ATTRIBUTE_CATEGORY
331 										:= P_DEBRIEF_LINE_Rec.ATTRIBUTE_CATEGORY ;
332 -- x_pvt_DEBRIEF_LINE_tbl(l_curr_row).RMA_NUMBER			:= P_DEBRIEF_LINE_Rec.RMA_NUMBER;
333 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).RMA_HEADER_ID		:= P_DEBRIEF_LINE_Rec.RMA_HEADER_ID;
334 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).DISPOSITION_CODE		:= P_DEBRIEF_LINE_Rec.DISPOSITION_CODE;
335 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).MATERIAL_REASON_CODE	:= P_DEBRIEF_LINE_Rec.MATERIAL_REASON_CODE;
336 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).LABOR_REASON_CODE		:= P_DEBRIEF_LINE_Rec.LABOR_REASON_CODE;
337 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).EXPENSE_REASON_CODE	:= P_DEBRIEF_LINE_Rec.EXPENSE_REASON_CODE;
338 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).LABOR_START_DATE		:= P_DEBRIEF_LINE_Rec.LABOR_START_DATE;
339 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).LABOR_END_DATE		:= P_DEBRIEF_LINE_Rec.LABOR_END_DATE;
340 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).STARTING_MILEAGE		:= P_DEBRIEF_LINE_Rec.STARTING_MILEAGE;
341 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).ENDING_MILEAGE		:= P_DEBRIEF_LINE_Rec.ENDING_MILEAGE;
342 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).EXPENSE_AMOUNT		:= P_DEBRIEF_LINE_Rec.EXPENSE_AMOUNT;
346 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).CHANNEL_CODE := P_DEBRIEF_LINE_Rec.CHANNEL_CODE ;
343 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).CURRENCY_CODE		:= P_DEBRIEF_LINE_Rec.CURRENCY_CODE;
344 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).DEBRIEF_LINE_STATUS_ID
345 							:= P_DEBRIEF_LINE_Rec.DEBRIEF_LINE_STATUS_ID;
347 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).CHARGE_UPLOAD_STATUS
348 							:= P_DEBRIEF_LINE_Rec.CHARGE_UPLOAD_STATUS ;
349 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).CHARGE_UPLOAD_MSG_CODE
350 							:= P_DEBRIEF_LINE_Rec.CHARGE_UPLOAD_MSG_CODE ;
351 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).CHARGE_UPLOAD_MESSAGE
352 								:= P_DEBRIEF_LINE_Rec.CHARGE_UPLOAD_MESSAGE;
353 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).IB_UPDATE_STATUS		:= P_DEBRIEF_LINE_Rec.IB_UPDATE_STATUS;
354 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).IB_UPDATE_MSG_CODE		:= P_DEBRIEF_LINE_Rec.IB_UPDATE_MSG_CODE;
355 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).IB_UPDATE_MESSAGE 		:= P_DEBRIEF_LINE_Rec.IB_UPDATE_MESSAGE ;
356 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).SPARE_UPDATE_STATUS	:= P_DEBRIEF_LINE_Rec.SPARE_UPDATE_STATUS;
357 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).SPARE_UPDATE_MSG_CODE
358 							:= P_DEBRIEF_LINE_Rec.SPARE_UPDATE_MSG_CODE;
359 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).SPARE_UPDATE_MESSAGE
360 								:= P_DEBRIEF_LINE_Rec.SPARE_UPDATE_MESSAGE;
361 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).ATTRIBUTE1 			:= P_DEBRIEF_LINE_Rec.ATTRIBUTE1;
362 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).ATTRIBUTE2 			:= P_DEBRIEF_LINE_Rec.ATTRIBUTE2;
363    x_pvt_DEBRIEF_LINE_tbl(l_curr_row).ATTRIBUTE3 		:= P_DEBRIEF_LINE_Rec.ATTRIBUTE3;
364 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).ATTRIBUTE4 			:= P_DEBRIEF_LINE_Rec.ATTRIBUTE4;
365 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).ATTRIBUTE5 			:= P_DEBRIEF_LINE_Rec.ATTRIBUTE5;
366 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).ATTRIBUTE6 			:= P_DEBRIEF_LINE_Rec.ATTRIBUTE6;
367 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).ATTRIBUTE7 			:= P_DEBRIEF_LINE_Rec.ATTRIBUTE7;
368 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).ATTRIBUTE8 			:= P_DEBRIEF_LINE_Rec.ATTRIBUTE8;
369 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).ATTRIBUTE9 			:= P_DEBRIEF_LINE_Rec.ATTRIBUTE9;
370 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).ATTRIBUTE10 			:= P_DEBRIEF_LINE_Rec.ATTRIBUTE10;
371 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).ATTRIBUTE11 			:= P_DEBRIEF_LINE_Rec.ATTRIBUTE11;
372 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).ATTRIBUTE12 			:= P_DEBRIEF_LINE_Rec.ATTRIBUTE12;
373 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).ATTRIBUTE13 			:= P_DEBRIEF_LINE_Rec.ATTRIBUTE13;
374 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).ATTRIBUTE14 			:= P_DEBRIEF_LINE_Rec.ATTRIBUTE14;
375 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).ATTRIBUTE15 			:= P_DEBRIEF_LINE_Rec.ATTRIBUTE15;
376 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).RETURN_REASON_CODE 		:= P_DEBRIEF_LINE_Rec.RETURN_REASON_CODE;
377 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).TRANSACTION_TYPE_ID
378 					:= P_DEBRIEF_LINE_Rec.TRANSACTION_TYPE_ID;
379 x_pvt_DEBRIEF_LINE_tbl(l_curr_row).RETURN_DATE		:= P_DEBRIEF_LINE_Rec.RETURN_DATE;
380 
381 
382 
383     IF l_any_errors
384     THEN
385         raise FND_API.G_EXC_ERROR;
386     END IF;
387 
388   EXCEPTION
389 	   WHEN OTHERS THEN
390 	        l_any_errors := TRUE;
391 	        l_any_row_errors  := FALSE;
392 	        x_pvt_debrief_line_tbl(l_curr_row)  := l_pvt_debrief_line_rec;
393 
394 END;
395 END LOOP;
396 
397 
398 END Conv_DEBRIEF_LINE_ValToId;
399 
400 PROCEDURE Create_Debrief(
401     P_Api_Version_Number         	IN   NUMBER,
402     P_Init_Msg_List              	IN   VARCHAR2     := FND_API.G_FALSE,
403     P_Commit                     	IN   VARCHAR2     := FND_API.G_FALSE,
404     P_DEBRIEF_Rec    	        	IN    DEBRIEF_Rec_Type  := G_MISS_DEBRIEF_REC,
405     P_DEBRIEF_LINE_tbl        	IN    DEBRIEF_LINE_tbl_type  ,
406 							--	DEFAULT G_MISS_DEBRIEF_LINE_tbl,
407     X_DEBRIEF_HEADER_ID             OUT NOCOPY  NUMBER,
408     X_Return_Status              	OUT NOCOPY  VARCHAR2,
409     X_Msg_Count                  	OUT NOCOPY  NUMBER,
410     X_Msg_Data                   	OUT NOCOPY  VARCHAR2
411     )
412  IS
413 l_api_name                CONSTANT VARCHAR2(30) := 'Create_debrief';
414 l_api_version_number      CONSTANT NUMBER   := 1.0;
415 l_pvt_DEBRIEF_rec      	  CSF_DEBRIEF_PVT.DEBRIEF_Rec_Type;
416 l_count                   CONSTANT NUMBER := p_debrief_line_tbl.count;
417 p_debrief_line_rec     	  DEBRIEF_LINE_REC_TYPE;
418 l_pvt_DEBRIEF_LINE_tbl 	  CSF_DEBRIEF_PVT.DEBRIEF_LINE_Tbl_Type;
419 x_debrief_line_id         NUMBER;
420 l_return_status           VARCHAR2(1);
421  BEGIN
422       SAVEPOINT CREATE_DEBRIEF_PUB;
423 
424       -- Standard call to check for call compatibility.
425       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
426                          	             p_api_version_number,
427                                            l_api_name,
428                                            G_PKG_NAME)
429       THEN
430           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
431       END IF;
432 
433       -- Initialize message list if p_init_msg_list is set to TRUE.
434       IF FND_API.to_Boolean( p_init_msg_list )
435       THEN
436           FND_MSG_PUB.initialize;
437       END IF;
438 
439       -- Initialize API return status to SUCCESS
440       x_return_status := FND_API.G_RET_STS_SUCCESS;
441 
442       -- API body
443       --
444       -- Convert the values to ids
445       --
446       Convert_DEBRIEF_Value_To_Id (
447             p_DEBRIEF_rec       =>  p_DEBRIEF_rec,
448             x_pvt_DEBRIEF_rec   =>  l_pvt_DEBRIEF_rec
449       );
450       Conv_DEBRIEF_LINE_ValToId(
451             p_DEBRIEF_LINE_tbl       =>  p_DEBRIEF_LINE_tbl,
455     -- Calling Private package: Create_DEBRIEF
452             x_pvt_DEBRIEF_LINE_tbl   =>  l_pvt_DEBRIEF_LINE_tbl
453       );
454 
456       CSF_DEBRIEF_PVT.Create_debrief(
457       P_Api_Version_Number         	=> 1.0,
458       P_Init_Msg_List              	=> FND_API.G_FALSE,
459       P_Commit                     	=> FND_API.G_FALSE,
460       P_Validation_Level           	=> FND_API.G_VALID_LEVEL_FULL,
461       P_DEBRIEF_Rec             	=> l_pvt_DEBRIEF_Rec ,
462       P_DEBRIEF_LINE_tbl        	=> l_pvt_DEBRIEF_LINE_tbl,
463       X_DEBRIEF_HEADER_ID     	=> x_DEBRIEF_HEADER_ID,
464       X_Return_Status              	=> x_return_status,
465       X_Msg_Count                  	=> x_msg_count,
466       X_Msg_Data                   	=> x_msg_data);
467 
468 
469       -- End of API body.
470       --
471       IF x_return_status = FND_API.G_RET_STS_ERROR then
472                 raise FND_API.G_EXC_ERROR;
473       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
474                raise FND_API.G_EXC_UNEXPECTED_ERROR;
475       END IF;
476 
477       IF FND_API.to_Boolean( p_commit )
478       THEN
479           COMMIT WORK;
480       END IF;
481 
482       FND_MSG_PUB.Count_And_Get
483       (  p_count          =>   x_msg_count,
484          p_data           =>   x_msg_data
485       );
486 
487 
488       EXCEPTION
489           WHEN FND_API.G_EXC_ERROR THEN
490 
491 		    ROLLBACK TO  CREATE_DEBRIEF_PUB;
492               x_return_status := FND_API.G_RET_STS_ERROR;
493 				 FND_MSG_PUB.Count_And_Get (
494                    P_COUNT => X_MSG_COUNT
495                   ,P_DATA => X_MSG_DATA);
496           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
497 		    ROLLBACK TO  CREATE_DEBRIEF_PUB;
498 
499               x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
500 				 FND_MSG_PUB.Count_And_Get (
501                    P_COUNT => X_MSG_COUNT
502                   ,P_DATA => X_MSG_DATA);
503           WHEN OTHERS THEN
504 		    ROLLBACK TO  CREATE_DEBRIEF_PUB;
505 
506               x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
507 				IF 	FND_MSG_PUB.Check_Msg_Level
508 					(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
509 			     THEN
510 				   	FND_MSG_PUB.Add_Exc_Msg (
511                    	 	G_PKG_NAME
512                   		,L_API_NAME );
513 				 END IF;
514 				 FND_MSG_PUB.Count_And_Get (
515                    P_COUNT => X_MSG_COUNT
516                   ,P_DATA => X_MSG_DATA);
517 
518 End Create_debrief;
519 
520 PROCEDURE Update_debrief(
521     P_Api_Version_Number         IN   NUMBER,
522     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
523     P_Commit                     IN   VARCHAR2     := FND_API.G_FALSE,
524     P_DEBRIEF_Rec             IN   DEBRIEF_Rec_Type ,
525     X_Return_Status              OUT NOCOPY  VARCHAR2,
526     X_Msg_Count                  OUT NOCOPY  NUMBER,
527     X_Msg_Data                   OUT NOCOPY  VARCHAR2
528     )
529  IS
530 l_api_name                CONSTANT VARCHAR2(30) := 'Update_debrief';
531 l_api_version_number      CONSTANT NUMBER   := 1.0;
532 l_pvt_DEBRIEF_rec      CSF_DEBRIEF_PVT.DEBRIEF_Rec_Type;
533  BEGIN
534       -- Standard Start of API savepoint
535       SAVEPOINT UPDATE_DEBRIEF_PUB;
536 
537       -- Standard call to check for call compatibility.
538       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
539                          	             p_api_version_number,
540                                            l_api_name,
541                                            G_PKG_NAME)
542       THEN
543           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
544       END IF;
545 
546       -- Initialize message list if p_init_msg_list is set to TRUE.
547       IF FND_API.to_Boolean( p_init_msg_list )
548       THEN
549           FND_MSG_PUB.initialize;
550       END IF;
551 
552       -- Initialize API return status to SUCCESS
553       x_return_status := FND_API.G_RET_STS_SUCCESS;
554 
555       -- API body
556       -- Convert the values to ids
557       --
558       Convert_DEBRIEF_Value_To_Id (
559             p_DEBRIEF_rec       =>  p_DEBRIEF_rec,
560             x_pvt_DEBRIEF_rec   =>  l_pvt_DEBRIEF_rec
561       );
562 
563     CSF_DEBRIEF_PVT.Update_debrief(
564     P_Api_Version_Number         => 1.0,
565     P_Init_Msg_List              => FND_API.G_FALSE,
566     P_Commit                     => p_commit,
567     P_Validation_Level           => FND_API.G_VALID_LEVEL_FULL,
568     P_DEBRIEF_Rec             	=> l_pvt_DEBRIEF_Rec ,
569     X_Return_Status              => x_return_status,
570     X_Msg_Count                  => x_msg_count,
571     X_Msg_Data                   => x_msg_data);
572 
573       -- Check return status from the above procedure call
574       IF x_return_status = FND_API.G_RET_STS_ERROR then
575           raise FND_API.G_EXC_ERROR;
576       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
577           raise FND_API.G_EXC_UNEXPECTED_ERROR;
578       END IF;
579       -- End of API body
580       --
581       IF FND_API.to_Boolean( p_commit )
582       THEN
583           COMMIT WORK;
584       END IF;
585 
586       FND_MSG_PUB.Count_And_Get
587       (  p_count          =>   x_msg_count,
588          p_data           =>   x_msg_data
589       );
590 
591       EXCEPTION
595 				 FND_MSG_PUB.Count_And_Get (
592           WHEN FND_API.G_EXC_ERROR THEN
593 		    ROLLBACK TO  UPDATE_DEBRIEF_PUB;
594               x_return_status := FND_API.G_RET_STS_ERROR;
596                    P_COUNT => X_MSG_COUNT
597                   ,P_DATA => X_MSG_DATA);
598 
599           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
600 		    ROLLBACK TO  UPDATE_DEBRIEF_PUB;
601               x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
602 				 FND_MSG_PUB.Count_And_Get (
603                    P_COUNT => X_MSG_COUNT
604                   ,P_DATA => X_MSG_DATA);
605 
606           WHEN OTHERS THEN
607 		    ROLLBACK TO  UPDATE_DEBRIEF_PUB;
608               x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
609 				IF FND_MSG_PUB.Check_Msg_Level
610 					 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
611 			     THEN
612 				   FND_MSG_PUB.Add_Exc_Msg (
613                    	 G_PKG_NAME
614                   	,L_API_NAME );
615 				 END IF;
616 
617 				 FND_MSG_PUB.Count_And_Get (
618                    P_COUNT => X_MSG_COUNT
619                   ,P_DATA => X_MSG_DATA);
620 
621 End Update_debrief;
622 
623 PROCEDURE Create_debrief_lines(
624     P_Api_Version_Number        IN   NUMBER,
625     P_Init_Msg_List             IN   VARCHAR2     := FND_API.G_FALSE,
626     P_Commit                    IN   VARCHAR2     := FND_API.G_FALSE,
627     P_Upd_tskassgnstatus        IN   VARCHAR2   ,
628     P_Task_Assignment_status    IN   VARCHAR2   ,
629     P_DEBRIEF_LINE_Tbl        	IN   DEBRIEF_LINE_Tbl_Type  := G_MISS_DEBRIEF_LINE_Tbl,
630     P_DEBRIEF_HEADER_ID         IN   NUMBER,
631     P_SOURCE_OBJECT_TYPE_CODE   IN   VARCHAR2,
632     X_Return_Status             OUT NOCOPY  VARCHAR2,
633     X_Msg_Count                 OUT NOCOPY  NUMBER,
634     X_Msg_Data                  OUT NOCOPY  VARCHAR2
635     )
636  IS
637    l_api_name                   CONSTANT VARCHAR2(30) := 'Create_debrief_lines';
638    l_api_version_number         CONSTANT NUMBER   := 1.0;
639    l_pvt_DEBRIEF_LINE_tbl    CSF_DEBRIEF_PVT.DEBRIEF_LINE_tbl_Type;
640 
641  BEGIN
642 
643       -- Standard Start of API savepoint
644       SAVEPOINT CREATE_DEBRIEF_LINE_PUB;
645 
646       -- Standard call to check for call compatibility.
647       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
648                          	             p_api_version_number,
649                                            l_api_name,
650                                            G_PKG_NAME)
651       THEN
652           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
653       END IF;
654 
655       -- Initialize message list if p_init_msg_list is set to TRUE.
656       IF FND_API.to_Boolean( p_init_msg_list )
657       THEN FND_MSG_PUB.initialize; END IF;
658 
659       -- Initialize API return status to SUCCESS
660       x_return_status := FND_API.G_RET_STS_SUCCESS;
661 
662       -- API body
663       --
664       -- Convert the values to ids
665 
666       Conv_DEBRIEF_LINE_ValToId(
667             p_DEBRIEF_LINE_tbl       =>  p_DEBRIEF_LINE_tbl,
668             x_pvt_DEBRIEF_LINE_tbl   =>  l_pvt_DEBRIEF_LINE_tbl
669       );
670 
671     -- Calling Private package: Create_DEBRIEF_LINE
672 
673       CSF_debrief_PVT.Create_debrief_lines(
674       P_Api_Version_Number         	=> 1.0,
675       P_Init_Msg_List              	=> FND_API.G_FALSE,
676       P_Commit                     	=> FND_API.G_FALSE,
677       P_Upd_tskassgnstatus              => P_Upd_tskassgnstatus,
678       P_Task_Assignment_status          =>  P_Task_Assignment_status      ,
679       P_Validation_Level           	=> FND_API.G_VALID_LEVEL_FULL,
680       P_DEBRIEF_LINE_tbl        	=> l_pvt_DEBRIEF_LINE_tbl,
681       P_DEBRIEF_HEADER_ID          	=> P_DEBRIEF_HEADER_ID,
682       P_SOURCE_OBJECT_TYPE_CODE         => P_SOURCE_OBJECT_TYPE_CODE,
683       X_Return_Status             	=> x_return_status,
684       X_Msg_Count                  	=> x_msg_count,
685       X_Msg_Data                   	=> x_msg_data);
686 
687       -- Check return status from the above procedure call
688       IF x_return_status = FND_API.G_RET_STS_ERROR then
689           raise FND_API.G_EXC_ERROR;
690       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
691           raise FND_API.G_EXC_UNEXPECTED_ERROR;
692       END IF;
693 
694       -- End of API body.
695       --
696       IF FND_API.to_Boolean( p_commit )
697       THEN
698           COMMIT WORK;
699       END IF;
700 
701       FND_MSG_PUB.Count_And_Get
702       (  p_count          =>   x_msg_count,
703          p_data           =>   x_msg_data
704       );
705 
706       EXCEPTION
707           WHEN FND_API.G_EXC_ERROR THEN
708 		    ROLLBACK TO  CREATE_DEBRIEF_LINE_PUB;
709               x_return_status := FND_API.G_RET_STS_ERROR;
710 				 FND_MSG_PUB.Count_And_Get (
711                    P_COUNT => X_MSG_COUNT
712                   ,P_DATA => X_MSG_DATA);
713 
714           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
715 		    ROLLBACK TO  CREATE_DEBRIEF_LINE_PUB;
716               x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
717 				 FND_MSG_PUB.Count_And_Get (
718                    P_COUNT => X_MSG_COUNT
719                   ,P_DATA => X_MSG_DATA);
720 
721           WHEN OTHERS THEN
725 					 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
722 		    ROLLBACK TO  CREATE_DEBRIEF_LINE_PUB;
723               x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
724 				IF FND_MSG_PUB.Check_Msg_Level
726 			     THEN
727 				   FND_MSG_PUB.Add_Exc_Msg (
728                    	 G_PKG_NAME
729                   	,L_API_NAME );
730 				 END IF;
731 
732 				 FND_MSG_PUB.Count_And_Get (
733                    P_COUNT => X_MSG_COUNT
734                   ,P_DATA => X_MSG_DATA);
735 
736 End Create_debrief_lines;
737 
738 PROCEDURE Update_debrief_line(
739     P_Api_Version_Number         	IN   NUMBER,
740     P_Init_Msg_List              	IN   VARCHAR2     := FND_API.G_FALSE,
741     P_Commit                     	IN   VARCHAR2     := FND_API.G_FALSE,
742     P_Upd_tskassgnstatus        IN VARCHAR2   ,
743     P_Task_Assignment_status     IN VARCHAR2  ,
744     P_DEBRIEF_LINE_Rec        	IN   DEBRIEF_LINE_Rec_Type,
745     X_Return_Status              	OUT NOCOPY  VARCHAR2,
746     X_Msg_Count                  	OUT NOCOPY  NUMBER,
747     X_Msg_Data                   	OUT NOCOPY  VARCHAR2
748     )
749  IS
750 l_api_name                 CONSTANT VARCHAR2(30) := 'Update_debrief_line';
751 l_api_version_number       CONSTANT NUMBER   := 1.0;
752 l_pvt_DEBRIEF_LINE_rec  CSF_DEBRIEF_PVT.DEBRIEF_LINE_Rec_Type;
753 l_pvt_DEBRIEF_LINE_tbl  CSF_DEBRIEF_PVT.DEBRIEF_LINE_tbl_Type;
754 p_DEBRIEF_LINE_tbl DEBRIEF_LINE_TBL_Type;
755  BEGIN
756       -- Standard Start of API savepoint
757       SAVEPOINT UPDATE_DEBRIEF_LINE_PUB;
758 
759       -- Standard call to check for call compatibility.
760       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
761                          	             p_api_version_number,
762                                            l_api_name,
763                                            G_PKG_NAME)
764       THEN
765           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
766       END IF;
767                               -- dbms_output.put_line ( 'step 3 PUB');
768       -- Initialize message list if p_init_msg_list is set to TRUE.
769       IF FND_API.to_Boolean( p_init_msg_list )
770       THEN
771           FND_MSG_PUB.initialize;
772       END IF;
773                                                -- dbms_output.put_line ( 'step 4 PUB');
774 
775       -- Initialize API return status to SUCCESS
776       x_return_status := FND_API.G_RET_STS_SUCCESS;
777       --
778       -- API body
779 
780       -- Convert the values to ids
781       --
782 
783       p_DEBRIEF_LINE_tbl(1) := P_DEBRIEF_LINE_Rec;
784 -- dbms_output.put_line ( 'step 2 PUB');
785 
786       Conv_DEBRIEF_LINE_ValToId(
787             p_DEBRIEF_LINE_tbl       =>  p_DEBRIEF_LINE_tbl,
788             x_pvt_DEBRIEF_LINE_tbl   =>  l_pvt_DEBRIEF_LINE_tbl
789       );
790 
791  -- dbms_output.put_line ( 'step 1 PUB');
792 
793     CSF_DEBRIEF_PVT.Update_debrief_line(
794     P_Api_Version_Number         => 1.0,
795     P_Init_Msg_List              => FND_API.G_FALSE,
796     P_Commit                     => p_commit,
797     P_Upd_tskassgnstatus        =>  P_Upd_tskassgnstatus         ,
798     P_Task_Assignment_status     =>  P_Task_Assignment_status     ,
799     P_Validation_Level           => FND_API.G_VALID_LEVEL_FULL,
800     P_DEBRIEF_LINE_Rec        => l_pvt_DEBRIEF_LINE_tbl(1),
801     X_Return_Status              => x_return_status,
802     X_Msg_Count                  => x_msg_count,
803     X_Msg_Data                   => x_msg_data);
804 
805 -- dbms_output.put_line ( 'step 1 PUB');
806       -- Check return status from the above procedure call
807       IF x_return_status = FND_API.G_RET_STS_ERROR then
808 
809           raise FND_API.G_EXC_ERROR;
810       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
811 
812           raise FND_API.G_EXC_UNEXPECTED_ERROR;
813       END IF;
814       -- End of API body
815       --
816 
817       IF FND_API.to_Boolean( p_commit )
818       THEN
819           COMMIT WORK;
820       END IF;
821 
822       FND_MSG_PUB.Count_And_Get
823       (  p_count          =>   x_msg_count,
824          p_data           =>   x_msg_data
825       );
826 
827       EXCEPTION
828           WHEN FND_API.G_EXC_ERROR THEN
829 		    ROLLBACK TO  UPDATE_DEBRIEF_LINE_PUB;
830               x_return_status := FND_API.G_RET_STS_ERROR;
831 				 FND_MSG_PUB.Count_And_Get (
832                    P_COUNT => X_MSG_COUNT
833                   ,P_DATA => X_MSG_DATA);
834 
835           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
836 		    ROLLBACK TO  UPDATE_DEBRIEF_LINE_PUB;
837               x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
838 				 FND_MSG_PUB.Count_And_Get (
839                    P_COUNT => X_MSG_COUNT
840                   ,P_DATA => X_MSG_DATA);
841 
842           WHEN OTHERS THEN
843 		    ROLLBACK TO  UPDATE_DEBRIEF_LINE_PUB;
844               x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
845 				IF FND_MSG_PUB.Check_Msg_Level
846 					 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
847 			     THEN
848 				   FND_MSG_PUB.Add_Exc_Msg (
849                    	 G_PKG_NAME
850                   	,L_API_NAME );
851 				 END IF;
852 
853 				 FND_MSG_PUB.Count_And_Get (
854                    P_COUNT => X_MSG_COUNT
855                   ,P_DATA => X_MSG_DATA);
856 
857 End Update_debrief_line;
858 PROCEDURE call_internal_hook (
859       p_package_name      IN       VARCHAR2,
860       p_api_name          IN       VARCHAR2,
861       p_processing_type   IN       VARCHAR2,
862       x_return_status     OUT NOCOPY      VARCHAR2
863    )
864    IS
865       CURSOR c1
866       IS
867          SELECT hook_package, hook_api
868            FROM jtf_hooks_data
869           WHERE package_name = p_package_name
870             AND api_name = p_api_name
871             AND execute_flag = 'Y'
872             AND processing_type = p_processing_type
873           ORDER BY execution_order;
874 
875       v_cursorid   INTEGER;
876       v_blockstr   VARCHAR2(2000);
877       v_dummy      INTEGER;
878    BEGIN
879       x_return_status := fnd_api.g_ret_sts_success;
880 
881       FOR i IN c1
882       LOOP
883          v_cursorid := DBMS_SQL.open_cursor;
884          v_blockstr :=
885             ' begin ' || i.hook_package || '.' || i.hook_api || '(:1); end; ';
886          DBMS_SQL.parse (v_cursorid, v_blockstr, DBMS_SQL.v7);
887          DBMS_SQL.bind_variable (v_cursorid, ':1', x_return_status, 20);
888          v_dummy := DBMS_SQL.execute (v_cursorid);
889          DBMS_SQL.variable_value (v_cursorid, ':1', x_return_status);
890          DBMS_SQL.close_cursor (v_cursorid);
891 
892          IF NOT (x_return_status = fnd_api.g_ret_sts_success)
893          THEN
894             fnd_message.set_name ('JTF', 'JTF_TASK_MISSING_RETURN_STATUS');
895             fnd_message.set_token (
896                'P_PROCEDURE',
897                i.hook_package || '.' || i.hook_api
898             );
899             fnd_msg_pub.add;
900             x_return_status := fnd_api.g_ret_sts_unexp_error;
901             RAISE fnd_api.g_exc_unexpected_error;
902             x_return_status := fnd_api.g_ret_sts_unexp_error;
903             RAISE fnd_api.g_exc_unexpected_error;
904          END IF;
905 
906          IF x_return_status IS NULL
907          THEN
908             fnd_message.set_name ('JTF', 'JTF_TASK_MISSING_RETURN_STATUS');
909             fnd_msg_pub.add;
910             x_return_status := fnd_api.g_ret_sts_unexp_error;
911             RAISE fnd_api.g_exc_unexpected_error;
912          END IF;
913       END LOOP;
914    EXCEPTION
915       WHEN fnd_api.g_exc_unexpected_error
916       THEN
917          x_return_status := fnd_api.g_ret_sts_unexp_error;
918       WHEN OTHERS
919       THEN
920          fnd_message.set_name ('JTF', 'JTF_TASK_UNKNOWN_ERROR');
921          fnd_message.set_token ('P_TEXT', SQLCODE || SQLERRM);
922          fnd_msg_pub.add;
923          x_return_status := fnd_api.g_ret_sts_unexp_error;
924    END;
925 End CSF_DEBRIEF_PUB;
926 
927