DBA Data[Home] [Help]

PACKAGE BODY: APPS.XDP_INSTALL_BASE

Source


1 PACKAGE BODY XDP_INSTALL_BASE AS
2 /* $Header: XDPIBINB.pls 120.2 2006/07/05 05:40:51 dputhiye noship $ */
3 
4 PROCEDURE UPDATE_TXN(p_order_id     IN NUMBER,
5                      p_line_id      IN NUMBER,
6                      p_ib_source_id IN NUMBER,
7                      p_line_source  IN VARCHAR2,
8                      p_line_number  IN NUMBER,
9                      p_error_code   OUT NOCOPY NUMBER,
10                      p_error_description OUT NOCOPY VARCHAR2);
11 
12 
13 PROCEDURE UPDATE_CSI(p_order_id     IN NUMBER,
14                      p_line_id      IN NUMBER,
15                      p_ib_source_id IN NUMBER,
16                      p_error_code   OUT NOCOPY NUMBER);
17 
18 
19        cursor c_update_ib (p_order_id number,p_Line_id number) IS
20         	select  c.parameter_name
21                		,c.parameter_value
22                		,c.txn_attrib_detail_id
23                		,c.attrib_source_table
24                		,c.attrib_source_id
25         	from 	xdp_order_line_items a,
26 			xdp_fulfill_worklist b,
27 			xdp_worklist_details c
28         	where   a.line_item_id         	= b.line_item_id and
29                		b.workitem_instance_id 	= c.workitem_instance_id and
30                		a.order_id	      	= p_order_id and
31                		a.line_item_id         	= p_line_id and
32                         a.ib_source             <> 'NONE' and
33                         c.attrib_source_id       is not null and
34                		c.modified_flag        	= 'Y';
35 
36 FUNCTION GET_TXN_LINE_ID(p_txn_line_detail_id IN NUMBER) RETURN NUMBER;
37 
38 PROCEDURE Log_Debug(p_debug_api   IN VARCHAR2,
39                     p_debug_msg   IN VARCHAR2);
40 
41 -- ====================================================
42 -- Update Installed Base
43 -- ====================================================
44 
45 PROCEDURE UPDATE_IB(p_order_id  IN NUMBER,
46                     p_line_id   IN NUMBER,
47                     p_error_code IN OUT NOCOPY NUMBER,
48                     p_error_description OUT NOCOPY VARCHAR2) IS
49 
50 
51         lv_error_code  NUMBER := 0;
52         lv_error_description VARCHAR2(2000);
53         lv_line_number NUMBER;
54 
55 	cursor c_check (p_order_id number,p_line_id number) is
56         	select  a.ib_source
57                	       ,a.ib_source_id
58                        ,a.line_source
59                        ,a.line_number
60                        ,a.is_virtual_line_flag
61                	       ,b.comms_nl_trackable_flag
62         	from    xdp_order_line_items a,
63                 	mtl_system_items_b b
64         	where   a.inventory_item_id 	= b.inventory_item_id
65         	and     a.organization_id 	= b.organization_id
66         	and     a.line_item_id 		= p_line_id
67         	and     a.order_id     		= p_order_id
68                 and     a.ib_source is not null;
69 
70         cursor c_rel_line(p_line_id number) is
71                select	a.line_number
72                from     xdp_order_line_items a,
73                         xdp_line_relationships b
74                where    a.line_item_id = b.related_line_item_id
75                and      b.line_item_id = p_line_id;
76 
77 
78 BEGIN
79 
80 Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_IB',
81           p_debug_msg => 'Updating Install Base For Order Id is : '||p_order_id|| ' and Line Id is : '||p_line_id);
82 
83   FOR v_check_rec IN c_check (p_order_id, p_line_id)  LOOP
84 
85     IF v_check_rec.comms_nl_trackable_flag = 'Y' THEN
86 
87        Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_IB',
88                  p_debug_msg => ' Trackable Flag is : ' ||v_check_rec.comms_nl_trackable_flag);
89 
90        IF v_check_rec.ib_source = 'TXN' THEN
91 
92           Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_IB',
93                     p_debug_msg => ' Ib Source is : ' ||v_check_rec.ib_source);
94 
95           IF v_check_rec.is_virtual_line_flag = 'Y' THEN
96 
97              Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_IB',
98                        p_debug_msg => ' is_virtual_line_flag is : ' ||v_check_rec.is_virtual_line_flag);
99 
100              FOR v_rel_line in c_rel_line(p_line_id) LOOP
101 
102                  lv_line_number := v_rel_line.line_number;
103 
104              END LOOP;
105           ELSE
106              lv_line_number := v_check_rec.line_number;
107           END IF;
108 
109           Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_IB',
110                     p_debug_msg => ' lv_line_number : '||lv_line_number );
111 
112           Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_IB',
113                     p_debug_msg => ' Calling UPDATE_TXN ');
114 
115           UPDATE_TXN(p_order_id,
116                      p_line_id,
117                      v_check_rec.ib_source_id,
118                      v_check_rec.line_source,
119                      lv_line_number,
120                      lv_error_code,
121                      lv_error_description);
122 
123           IF lv_error_code <> 0 THEN
124 
125              Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_IB',
126                        p_debug_msg => ' Update_Txn Failed. Error Code : '||lv_error_code ||'-  Error Desc : '||lv_error_description );
127 
128              p_error_code := lv_error_code;
129              p_error_description := lv_error_description ;
130             RETURN;
131           END IF;
132 
133        ELSIF v_check_rec.ib_source = 'CSI' THEN
134 
135              Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_IB',
136                        p_debug_msg => 'Ib Source is : '||v_check_rec.ib_source );
137              Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_IB',
138                        p_debug_msg => ' Calling UPDATE_CSI');
139 
140               UPDATE_CSI(p_order_id,
141                          p_line_id,
142                          v_check_rec.ib_source_id,
143                          lv_error_code);
144 
145           IF lv_error_code <>  0 THEN
146 
147              Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_IB',
148                        p_debug_msg => ' Update_CSI Failed. Error Code : '||lv_error_code);
149 
150              p_error_code := lv_error_code;
151             RETURN;
152           END IF;
153 
154        ELSIF v_check_rec.ib_source = 'NONE' THEN
155           NULL;
156           lv_error_code := 0;
157           RETURN;
158        END IF;
159     END IF;
160   END LOOP;
161 
162 EXCEPTION
163      WHEN others THEN
164           p_error_code := sqlcode ;
165           p_error_description := substr(sqlerrm,1,1800);
166 
167           Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_IB',
168                     p_debug_msg => ' Exception Occurred');
169           Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_IB',
170                     p_debug_msg => 'Error Code : ' ||p_error_code||' - Error Desc : '||p_error_description);
171 
172           RETURN;
173 
174 END UPDATE_IB;
175 
176 
177 -- =======================================================
178 -- Update Transaction Details
179 -- =======================================================
180 
181 PROCEDURE UPDATE_TXN (p_order_id     IN  NUMBER,
182                       p_line_id      IN  NUMBER,
183                       p_ib_source_id IN  NUMBER,
184                       p_line_source  IN  VARCHAR2,
185                       p_line_number  IN  NUMBER,
186                       p_error_code   OUT NOCOPY NUMBER,
187                       p_error_description OUT NOCOPY VARCHAR2) IS
188 
189   lv_index                      NUMBER;
190   lv_index1                     NUMBER;
191   l_return_status               VARCHAR2(1);
192   lv_return_status              VARCHAR2(1);
193   l_msg_count                   NUMBER;
194   l_msg_data                    VARCHAR2(1000);
195   lv_return_message             VARCHAR2(2000);
196   t_msg_dummy                   VARCHAR2(4000);
197   t_output                      VARCHAR2(2000);
198 
199   l_txn_line_rec                CSI_T_DATASTRUCTURES_GRP.TXN_LINE_REC;
200   l_txn_line_detail_tbl		CSI_T_DATASTRUCTURES_GRP.TXN_LINE_DETAIL_TBL;
201   l_txn_party_detail_tbl	CSI_T_DATASTRUCTURES_GRP.TXN_PARTY_DETAIL_TBL;
202   l_txn_pty_acct_detail_tbl	CSI_T_DATASTRUCTURES_GRP.TXN_PTY_ACCT_DETAIL_TBL;
203   l_txn_ii_rltns_tbl		CSI_T_DATASTRUCTURES_GRP.TXN_II_RLTNS_TBL;
204   l_txn_org_assgn_tbl		CSI_T_DATASTRUCTURES_GRP.TXN_ORG_ASSGN_TBL;
205   l_txn_ext_attrib_vals_tbl	CSI_T_DATASTRUCTURES_GRP.TXN_EXT_ATTRIB_VALS_TBL;
206   lv_config_session_key         CSI_UTILITY_GRP.config_session_key ;
207 
208   e_update_txn_failed           EXCEPTION;
209 
210  BEGIN
211 
212 Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_TXN',
213           p_debug_msg => 'In UPDATE_TXN');
214 
215         lv_index	:= 1;
216 	lv_index1 	:= 0;
217 
218             -- This code is added as a part of MACD Service project to get tuple of a CTO item OR its component and
219             -- pass to IB to update TXN dtls  -- spusegao/maya 07/29/2002
220 
221                 Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_TXN',
222                           p_debug_msg => 'Line Id is : '||p_line_number);
223 
224                 Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_TXN',
225                           p_debug_msg => 'Calling CSI_UTILITY_GRP.get_config_key_for_om_line ');
226 
227                 CSI_UTILITY_GRP.get_config_key_for_om_line( p_line_id              => p_line_number ,
228                                                             x_config_session_key   => lv_config_session_key ,
229                                                             x_return_status        => lv_return_status ,
230                                                             x_return_message       => lv_return_message   );
231 
232 
233 
234                 IF lv_return_status ='S' AND (lv_config_session_key.session_hdr_id IS NOT NULL AND
235                                               lv_config_session_key.session_rev_num IS NOT NULL AND
236                                               lv_config_session_key.session_item_id IS NOT NULL ) THEN
237                    l_txn_line_rec.config_session_hdr_id    := lv_config_session_key.session_hdr_id ;
238                    l_txn_line_rec.config_session_rev_num   := lv_config_session_key.session_rev_num ;
239                    l_txn_line_rec.config_session_item_id   := lv_config_session_key.session_item_id ;
240                    l_txn_line_rec.api_caller_identity      := 'CONFIG' ;
241 
242                    Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_TXN',
243                              p_debug_msg => 'Config Hdr Id : '||lv_config_session_key.session_hdr_id);
244 
245                    Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_TXN',
246                              p_debug_msg => 'Config Rev Num : '||lv_config_session_key.session_rev_num);
247 
248                    Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_TXN',
249                              p_debug_msg => 'Config item Id : '||lv_config_session_key.session_item_id);
250 
251                 ELSIF lv_return_status ='S' AND (lv_config_session_key.session_hdr_id IS NULL AND
252                                                 lv_config_session_key.session_rev_num IS NULL AND
253                                                 lv_config_session_key.session_item_id IS NULL ) THEN
254                      -- pass line_number and line_source in the transaction record to ib
255                      l_txn_line_rec.source_transaction_id    := p_line_number;
256                      l_txn_line_rec.source_transaction_table := p_line_source;
257 
258                      Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_TXN',
259                                p_debug_msg => 'source_transaction_id : '||p_line_number);
260 
261                      Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_TXN',
262                                p_debug_msg => 'source_transaction_table : '||p_line_source);
263 
264 
265                 ELSIF lv_return_status <> 'S' THEN
266 
267                       Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_TXN',
268                                 p_debug_msg => 'CSI_UTILITY_GRP.get_config_key_for_om_line Failed');
269 
270                       Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_TXN',
271                                 p_debug_msg => 'Error Code : '||lv_return_status||'-  Error Desc. : '||lv_return_message);
272 
273                 END IF ;
274 
275             -- pass ib_source_id to the l_txn_line_detail_tbl
276 
277                IF p_ib_source_id IS NOT NULL THEN
278 
279                   Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_TXN',
280                             p_debug_msg => 'Calling GET_TXN_LINE_ID ');
281 
282                   l_txn_line_rec.transaction_line_id := GET_TXN_LINE_ID(p_ib_source_id);
283 
284                   Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_TXN',
285                             p_debug_msg => 'Transaction Line Id : '||l_txn_line_rec.transaction_line_id );
286 
287                END IF ;
288 
289             l_txn_line_detail_tbl(lv_index).txn_line_detail_id := p_ib_source_id;
290 
291             FOR v_update_ib in c_update_ib(p_order_id,p_line_id) LOOP
292                 lv_index1 := lv_index1 + 1;
293                       -- pass values to the l_txn_ext_attrib_vals_tbl
294                       l_txn_ext_attrib_vals_tbl(lv_index1).txn_attrib_detail_id  := v_update_ib.txn_attrib_detail_id;
295                       l_txn_ext_attrib_vals_tbl(lv_index1).txn_line_detail_id    := p_ib_source_id;
296                       l_txn_ext_attrib_vals_tbl(lv_index1).attrib_source_table   := v_update_ib.attrib_source_table;
297                       l_txn_ext_attrib_vals_tbl(lv_index1).attribute_source_id   := v_update_ib.attrib_source_id;
298                       l_txn_ext_attrib_vals_tbl(lv_index1).attribute_value       := v_update_ib.parameter_value;
299                       l_txn_ext_attrib_vals_tbl(lv_index1).process_flag          := 'Y';
300 
301             END LOOP;
302 
303                IF l_txn_ext_attrib_vals_tbl.COUNT > 0 THEN
304 
305                   Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_TXN',
306                             p_debug_msg => 'Txn Ext Attrib Val. Count > 0 ');
307 
308                   Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_TXN',
309                             p_debug_msg => 'Calling csi_t_txn_details_grp.update_txn_line_dtls');
310 
311 
312                   -- call transaction details API
313                    csi_t_txn_details_grp.update_txn_line_dtls
314                    	(
315      			 p_api_version			=> 1.0
316     			,p_commit                	=> null
317     			,p_init_msg_list         	=> null
318     			,p_validation_level         	=> null
319     			,p_txn_line_rec             	=> l_txn_line_rec
320     			,p_txn_line_detail_tbl   	=> l_txn_line_detail_tbl
321     			,px_txn_party_detail_tbl    	=> l_txn_party_detail_tbl
322     			,px_txn_pty_acct_detail_tbl 	=> l_txn_pty_acct_detail_tbl
323     			,px_txn_ii_rltns_tbl        	=> l_txn_ii_rltns_tbl
324     			,px_txn_org_assgn_tbl       	=> l_txn_org_assgn_tbl
325     			,px_txn_ext_attrib_vals_tbl 	=> l_txn_ext_attrib_vals_tbl
326     			,x_return_status         	=> l_return_status
327     			,x_msg_count             	=> l_msg_count
328     			,x_msg_data              	=> l_msg_data
329 			 );
330 
331 
332                END IF;
333 
334                IF l_return_status <> 'S' THEN
335                   p_error_code := -1 ;
336                   p_error_description := l_msg_data ;
337 
338                   Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_TXN',
339                             p_debug_msg => ' csi_t_txn_details_grp.update_txn_line_dtls Failed');
340                   Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_TXN',
341                             p_debug_msg => '  Error Desc : ' ||p_error_description);
342                   RETURN;
346 
343                ELSE
344                   Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_TXN',
345                             p_debug_msg => ' csi_t_txn_details_grp.update_txn_line_dtls Completed ');
347                END IF;
348 
349   p_error_code := 0;
350 
351 
352 
353  EXCEPTION
354 
355     WHEN OTHERS THEN
356           p_error_code := sqlcode ;
357           p_error_description := substr(sqlerrm,1,1800);
358 
359           Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_TXN',
360                     p_debug_msg => ' Exception Occurred');
361           Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_TXN',
362                     p_debug_msg => 'Error Code : ' ||p_error_code||' - Error Desc : '||p_error_description);
363 
364           RETURN ;
365 /*
366          xdp_utilities.generic_error('XDP_INSTALL_BASE.UPDATE_TXN'
367                                ,p_order_id
368                                , SQLCODE
369                                , SQLERRM);
370 */
371  END UPDATE_TXN;
372 
373 
374 -- ============================================================
375 -- Update Install Base
376 -- ============================================================
377 
378 PROCEDURE     UPDATE_CSI (p_order_id     IN  NUMBER,
379                           p_line_id      IN  NUMBER,
380                           p_ib_source_id IN  NUMBER,
381                           p_error_code   OUT NOCOPY NUMBER) IS
382 
383 
384  lv_index			NUMBER;
385  l_return_status               	VARCHAR2(1);
386  l_msg_count                   	NUMBER;
387  l_msg_data                    	VARCHAR2(1000);
388  l_instance_rec		       	CSI_DATASTRUCTURES_PUB.INSTANCE_REC;
389  l_extend_attrib_values_tbl    	CSI_DATASTRUCTURES_PUB.EXTEND_ATTRIB_VALUES_TBL;
390  l_party_tbl 		       	CSI_DATASTRUCTURES_PUB.PARTY_TBL;
391  l_party_account_tbl		CSI_DATASTRUCTURES_PUB.PARTY_ACCOUNT_TBL;
392  l_pricing_attribs_tbl		CSI_DATASTRUCTURES_PUB.PRICING_ATTRIBS_TBL;
393  l_organization_units_tbl 	CSI_DATASTRUCTURES_PUB.ORGANIZATION_UNITS_TBL;
394  l_transaction_rec		CSI_DATASTRUCTURES_PUB.TRANSACTION_REC;
395  l_instance_asset_tbl 		CSI_DATASTRUCTURES_PUB.INSTANCE_ASSET_TBL;
396  l_id_tbl 			CSI_DATASTRUCTURES_PUB.ID_TBL;
397  e_update_csi_failed         	EXCEPTION;
398  t_output                       VARCHAR2(2000);
399  t_msg_dummy                    NUMBER;
400 
401  Cursor c_get_obj_num(p_att_val_id number) is
402         select object_version_number
403         from csi_iea_values
404         where attribute_value_id = p_att_val_id;
405 
406  Cursor c_get_inst_obj_num(p_inst_id number) is
407        select object_version_number
408        from csi_item_instances
409        where instance_id = p_inst_id;
410 
411   BEGIN
412 
413         Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_CSI',
414                   p_debug_msg => 'In UPDATE_CSI');
415 
416 	lv_index	:= 0;
417 
418             -- create record to pass to API
419                l_instance_rec.instance_id := p_ib_source_id;
420 
421               FOR v_get_inst_obj_num in  c_get_inst_obj_num(p_ib_source_id) LOOP
422                    l_instance_rec.object_version_number := v_get_inst_obj_num.object_version_number ;
423               END LOOP;
424 
425 
426             -- create record for transaction rec to pass to API
427                l_transaction_rec.transaction_type_id := 57;
428                l_transaction_rec.transaction_date := SYSDATE;
429                l_transaction_rec.source_transaction_date := SYSDATE;
430 
431             FOR v_update_ib in c_update_ib(p_order_id,p_line_id) LOOP
432                lv_index := lv_index + 1;
433 
434                l_extend_attrib_values_tbl(lv_index).instance_id    	 	:= p_ib_source_id;
435 
436                IF v_update_ib.attrib_source_table = 'CSI_IEA_VALUES' THEN
437                    l_extend_attrib_values_tbl(lv_index).attribute_value_id   	:= v_update_ib.attrib_source_id;
438                    l_extend_attrib_values_tbl(lv_index).attribute_value         := v_update_ib.parameter_value;
439 
440                    FOR v_get_obj_num in c_get_obj_num(v_update_ib.attrib_source_id) LOOP
441                        l_extend_attrib_values_tbl(lv_index).object_version_number := v_get_obj_num.object_version_number;
442                    END LOOP;
443 
444                ELSIF v_update_ib.attrib_source_table = 'CSI_I_EXTENDED_ATTRIBS' THEN
445                    l_extend_attrib_values_tbl(lv_index).attribute_value_id   	:= null;
446                    l_extend_attrib_values_tbl(lv_index).attribute_id   	:= v_update_ib.attrib_source_id;
447                    l_extend_attrib_values_tbl(lv_index).attribute_value             := v_update_ib.parameter_value;
448 
449                END IF;
450 
451             END LOOP;
452 
453                IF l_extend_attrib_values_tbl.COUNT > 0 THEN
454 
455         Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_CSI',
456                   p_debug_msg => 'Calling csi_item_instance_pub.update_item_instance ');
457 
458                csi_item_instance_pub.update_item_instance
459  		(
460      		 p_api_version 			=>  1.0
461     		,p_commit               	=>  null
462     		,p_init_msg_list         	=>  null
463     		,p_validation_level     	=>  null
464     		,p_instance_rec          	=>  l_instance_rec
465     		,p_ext_attrib_values_tbl 	=>  l_extend_attrib_values_tbl
466     		,p_party_tbl             	=>  l_party_tbl
467     		,p_account_tbl           	=>  l_party_account_tbl
468     		,p_pricing_attrib_tbl    	=>  l_pricing_attribs_tbl
469     		,p_org_assignments_tbl   	=>  l_organization_units_tbl
470                 ,p_asset_assignment_tbl     	=>  l_instance_asset_tbl
471     		,p_txn_rec               	=>  l_transaction_rec
472      		,x_instance_id_lst       	=>  l_id_tbl
473     		,x_return_status         	=>  l_return_status
474     		,x_msg_count              	=>  l_msg_count
475     		,x_msg_data              	=>  l_msg_data
476  		);
477 
478 
479                 END IF;
480 
481 
482                 IF l_return_status <> 'S' THEN
483                    p_error_code := -1;
484 
485                    Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_CSI',
486                              p_debug_msg => 'csi_item_instance_pub.update_item_instance Failed');
487 
488                    Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_CSI',
489                              p_debug_msg => 'Error Code : ' ||p_error_code || '-  Error Desc. : '||l_msg_data );
490 
491                    RETURN;
492                 END IF;
493 
494    p_error_code := 0;
495 
496 EXCEPTION
497 
498     WHEN OTHERS THEN
499     p_error_code := -1;
500         Log_debug(p_debug_api => 'xdp.plsql.XDP_INSTALL_BASE.UPDATE_CSI',
501                   p_debug_msg => 'When Others Exception Error Code : '||sqlcode||'-  Error Desc. : '||sqlerrm );
502 
503     xdp_utilities.generic_error('XDP_INSTALL_BASE.UPDATE_CSI'
504                                ,p_order_id
505                                , SQLCODE
506                                , SQLERRM);
507     RETURN;
508 END UPDATE_CSI;
509 
510 -- Function to retrieve TXN Line Id for a given txn_line_detail_id
511 -- This is required for configured item while updating the attribute details in tXN detail.
512 
513 
514 FUNCTION GET_TXN_LINE_ID(p_txn_line_detail_id IN NUMBER) RETURN NUMBER IS
515 
516 l_txn_line_id NUMBER;
517 			--Date: 05-JUL-2006, Author: DPUTHIYE, Bug#5370624/5222928
518 			--Description: Wrapped NO_DATA_FOUND errors from this API, since the error
519 			--code/text returned is misleading as it rolls up to the Workflow status monitor.
520 			--Dependencies: None. The wrapper error message will be thrown as a custom exception.
521 BEGIN
522 
523      SELECT transaction_line_id
524      INTO l_txn_line_id
525      FROM csi_t_txn_line_details
526      WHERE txn_line_detail_id = p_txn_line_detail_id ;
527 
528      RETURN l_txn_line_id ;
529 EXCEPTION
530      WHEN no_data_found THEN
531         raise_application_error(-20001, 'IB Transaction Line Detail information not found. ' || SQLERRM);
532      WHEN others THEN
533 	raise;
534 END GET_TXN_LINE_ID;
535 
536 -- Procedure to create a debug message in fnd_log_messages to help debugging in case of issues
537 -- Being a private procedure this has been used within this package only.
538 
539 
540 PROCEDURE Log_Debug ( p_debug_api   IN VARCHAR2,
541                       p_debug_msg   IN VARCHAR2) IS
542 
543 
544 BEGIN
545 
546      IF((FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL)) THEN
547             IF (FND_LOG.TEST(FND_LOG.LEVEL_PROCEDURE, p_debug_api)) THEN
548 		IF( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
549                		FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, p_debug_api , p_debug_msg );
550 		END IF;
551             END IF;
552      END IF;
553 
554 
555 END Log_Debug ;
556 
557 
558 END XDP_INSTALL_BASE;