[Home] [Help]
PACKAGE BODY: APPS.CSE_RCVTXN_PKG
Source
1 PACKAGE BODY cse_rcvtxn_pkg AS
2 /* $Header: CSEPOEXB.pls 120.1 2006/06/07 21:15:16 brmanesh noship $ */
3
4 l_debug varchar2(1) := NVL(fnd_profile.value('CSE_DEBUG_OPTION'),'N');
5
6 PROCEDURE debug(
7 p_message IN varchar2)
8 IS
9 BEGIN
10 IF l_debug = 'Y' THEN
11 cse_debug_pub.add(p_message);
12 IF nvl(fnd_global.conc_request_id, -1) <> -1 THEN
13 fnd_file.put_line(fnd_file.log, p_message);
14 END IF;
15 END IF;
16 EXCEPTION
17 WHEN others THEN
18 null;
19 END debug;
20
21 PROCEDURE PostTransaction_Exit(
22 p_transaction_id IN NUMBER,
23 p_interface_trx_id IN NUMBER,
24 p_return_status OUT NOCOPY VARCHAR2)
25 IS
26 l_eib_installed VARCHAR2(1) := 'N';
27 l_ib_tracked_flag VARCHAR2(1);
28 l_message_id NuMBER ;
29 l_error_code NUMBER;
30 l_error_message VARCHAR2(2000);
31 l_return_status VARCHAR2(100);
32 l_file VARCHAR2(500);
33 l_api_version NUMBER DEFAULT 1.0;
34 l_commit VARCHAR2(1) DEFAULT fnd_api.g_false;
35 l_init_msg_list VARCHAR2(1) DEFAULT fnd_api.g_true;
36 l_msg_count NUMBER;
37 l_msg_data VARCHAR2(2000);
38 l_trx_error_rec csi_datastructures_pub.transaction_error_rec;
39 l_Validation_Level NUMBER := fnd_api.g_valid_level_full;
40 l_Txn_Error_Id NUMBER;
41 l_xml_string VARCHAR2(2000);
42
43 CURSOR rcv_txn_cur IS
44 SELECT rt.transaction_id,
45 pla.item_id,
46 pda.project_id,
47 rt.organization_id,
48 rt.transaction_type,
49 rt.destination_type_code
50 FROM rcv_transactions rt ,
51 po_lines_all pla ,
52 po_distributions_all pda
53 WHERE rt.transaction_id = p_transaction_id
54 AND pda.po_distribution_id = rt.po_distribution_id
55 AND pla.po_line_id = rt.po_line_id;
56
57 BEGIN
58
59 savepoint rcv_hook;
60
61 p_return_status := fnd_api.g_ret_sts_success;
62 l_eib_installed := cse_util_pkg.is_eib_installed;
63
64 IF l_eib_installed = 'Y' THEN
65
66 cse_util_pkg.build_error_string(l_xml_string,'RCV_TRANSACTION_ID',p_transaction_id);
67
68 cse_util_pkg.set_debug;
69
70 debug('Inside cse_rcvtxn_pkg.posttransaction_exit');
71 debug(' transaction_id : '||p_transaction_id);
72
73 FOR rcv_txn_rec IN rcv_txn_cur
74 LOOP
75
76 debug(' transaction_type : '||rcv_txn_rec.transaction_type);
77 debug(' destination_type_code : '||rcv_txn_rec.destination_type_code);
78 debug(' item_id : '||rcv_txn_rec.item_id);
79 debug(' project_id : '||rcv_txn_rec.project_id);
80
81 IF rcv_txn_rec.transaction_type = 'DELIVER'
82 AND
83 rcv_txn_rec.destination_type_code = 'EXPENSE'
84 AND
85 rcv_txn_rec.project_id is not null
86 AND
87 rcv_txn_rec.item_id is not null
88 THEN
89
90 SELECT nvl(comms_nl_trackable_flag, 'N')
91 INTO l_ib_tracked_flag
92 FROM mtl_system_items
93 WHERE inventory_item_id = rcv_txn_rec.item_id
94 AND organization_id = rcv_txn_rec.organization_id;
95
96 debug(' ib_tracked_flag : '||l_ib_tracked_flag);
97
98 IF l_ib_tracked_flag = 'Y' THEN
99
100 IF NOT cse_util_pkg.bypass_event_queue THEN
101
102 xnp_cseporcv_u.publish(
103 xnp$rcv_transaction_id => p_transaction_id ,
104 x_message_id => l_message_id ,
105 x_error_code => l_error_code ,
106 x_error_message => l_error_message);
107
108 IF l_error_code <> 0 THEN
109 RAISE fnd_api.g_exc_error;
110 END IF;
111
112 ELSE
113 cse_po_noqueue_pvt.process_noqueue_txn(
114 p_ref_id => p_transaction_id,
115 p_txn_type => 'PO_RECEIPT_INTO_PROJECT',
116 x_return_status => l_return_Status,
117 x_msg_count => l_msg_count,
118 x_msg_data => l_msg_data);
119
120 IF l_return_status <> fnd_api.g_ret_sts_success THEN
121 l_error_message := l_msg_data;
122 RAISE fnd_api.g_exc_error;
123 END IF;
124
125 END IF; -- bypass/publish
126 END IF; -- ib tracked
127 END IF; -- deliver expense item into project
128 END LOOP;
129
130 END IF; -- eib installed
131
132 EXCEPTION
133 WHEN OTHERS THEN
134 ROLLBACK TO rcv_hook;
135 p_return_Status := fnd_api.g_ret_sts_unexp_error;
136 l_error_Message := nvl(l_error_message, sqlerrm);
137 IF l_eib_installed = 'Y' THEN
138 l_trx_error_rec.error_text := l_error_message;
139 l_trx_error_rec.source_type := 'CSEPORCV';
140 l_trx_error_rec.source_id := p_transaction_id;
141 l_Trx_Error_Rec.Transaction_Type_ID := 102;
142 l_Trx_Error_Rec.message_string := l_xml_string;
143 l_Trx_Error_Rec.error_stage := cse_datastructures_pub.g_ib_update;
144 csi_transactions_pvt.create_txn_error(
145 l_api_version,l_init_msg_list,l_commit,1,l_trx_error_rec,
146 l_return_status,l_msg_count,l_msg_data,l_txn_error_id);
147 END IF;
148 END PostTransaction_Exit;
149
150 END cse_rcvtxn_pkg;