[Home] [Help]
PACKAGE BODY: APPS.CSE_PO_NOQUEUE_PVT
Source
1 PACKAGE BODY cse_po_noqueue_pvt AS
2 /* $Header: CSEPONQB.pls 120.5 2006/05/31 21:12:13 brmanesh noship $ */
3
4 l_debug VARCHAR2(1) := NVL(FND_PROFILE.VALUE('CSE_DEBUG_OPTION'),'N');
5
6 PROCEDURE process_noqueue_txn(
7 P_Ref_Id IN NUMBER,
8 P_Txn_Type IN VARCHAR2,
9 x_Return_Status OUT NOCOPY VARCHAR2,
10 x_msg_Count OUT NOCOPY NUMBER,
11 x_Msg_data OUT NOCOPY VARCHAR2)
12 IS
13 l_Error_Message VARCHAR2(2000);
14 l_Api_Version NUMBER := 1;
15 l_Init_Msg_List VARCHAR2(1) :=FND_API.G_TRUE;
16 l_return_status VARCHAR2(1);
17 l_fnd_success VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
18 l_rcv_attributes_rec CSE_DATASTRUCTURES_PUB.RCV_ATTRIBUTES_REC_TYPE;
19 l_Rcv_Txn_tbl CSE_Datastructures_Pub.Rcv_Txn_Tbl_Type;
20 l_ipv_attributes_rec CSE_DATASTRUCTURES_PUB.IPV_ATTRIBUTES_REC_TYPE;
21 l_ipv_Txn_tbl CSE_Datastructures_Pub.Ipv_Txn_Tbl_Type;
22 l_txn_error_rec CSI_DATASTRUCTURES_PUB.TRANSACTION_ERROR_REC;
23 l_msg_count NUMBER;
24 l_msg_data VARCHAR2(2000);
25 l_txn_error_id NUMBER;
26 e_dpl_Error EXCEPTION;
27 l_Transaction_Id NUMBER;
28 l_eib_Installed VARCHAR2(1);
29 l_debug VARCHAR2(1);
30 l_file VARCHAR2(500);
31 l_type_id NUMBER;
32 l_xml_string VARCHAR2(2000);
33 l_error_stage VARCHAR2(30);
34 BEGIN
35 l_return_status := l_fnd_success;
36 l_error_message := NULL;
37 savepoint one;
38
39 cse_util_pkg.set_debug;
40
41 IF P_Txn_Type = 'PO_RECEIPT_INTO_PROJECT' THEN
42
43 l_type_id := cse_util_pkg.get_txn_type_id('PO_RECEIPT_INTO_PROJECT','PO');
44
45 cse_util_pkg.build_error_string(l_xml_string,'RCV_TRANSACTION_ID',p_ref_id);
46
47 l_rcv_attributes_rec.Rcv_Transaction_Id := P_Ref_Id;
48 IF (l_debug = 'Y') THEN
49 cse_debug_pub.add('No Queue PO_RECEIPT_INTO_PROJECT');
50 END IF;
51
52 cse_po_receipt_into_project.update_csi_data(
53 l_rcv_attributes_rec,
54 l_Rcv_Txn_Tbl,
55 l_return_status,
56 l_error_message);
57
58 IF NOT l_return_status = l_fnd_success THEN
59 l_error_stage := cse_datastructures_pub.g_ib_update;
60 RAISE e_dpl_error;
61 END IF;
62
63 IF (l_debug = 'Y') THEN
64 cse_debug_pub.add('No Queue calling interface_nl_to_pa');
65 END IF;
66
67 l_Transaction_Id := l_Rcv_Txn_Tbl(1).CSI_Transaction_Id;
68
69 cse_po_receipt_into_project.interface_nl_to_pa(
70 l_Rcv_Txn_Tbl,
71 l_return_status,
72 l_error_message);
73
74 IF NOT l_return_status = l_fnd_success THEN
75 l_error_stage := cse_datastructures_pub.g_pa_interface;
76 RAISE e_dpl_error;
77 END IF;
78 END IF;
79
80 EXCEPTION
81 WHEN e_dpl_error THEN
82 IF (l_debug = 'Y') THEN
83 cse_debug_pub.add('No Queue error'||l_error_Message);
84 END IF;
85
86 l_txn_error_rec := cse_util_pkg.Init_Txn_Error_Rec;
87 l_txn_error_rec.transaction_id := l_transaction_id;
88 l_txn_error_rec.error_text := l_error_message;
89 l_txn_error_rec.source_type := P_Txn_Type;
90 l_txn_error_rec.source_id := P_Ref_Id;
91 l_txn_error_rec.transaction_type_id := l_type_Id;
92 l_txn_error_rec.message_string := l_xml_string;
93 l_txn_error_rec.error_stage := l_error_stage;
94
95 rollback to one;
96
97 csi_transactions_pvt.create_txn_error(
98 l_api_version,
99 l_init_msg_list,
100 'F',
101 1,
102 l_txn_error_rec,
103 l_return_status,
104 l_msg_count,
105 l_msg_data,
106 l_txn_error_id);
107
108 END process_noqueue_txn;
109
110 PROCEDURE pa_interface(
111 P_Rcv_Txn_Id IN NUMBER,
112 x_return_status OUT NOCOPY VARCHAR2,
113 x_error_message OUT NOCOPY VARCHAR2)
114 IS
115 l_rcv_txn_tbl cse_datastructures_pub.rcv_txn_tbl_type;
116 l_txn_id NUMBER;
117
118 l_txn_error_rec csi_datastructures_pub.transaction_error_rec;
119 l_txn_error_id number;
120 l_xml_string varchar2(512);
121
122 l_error_message varchar2(2000);
123 l_msg_count number;
124 l_msg_data varchar2(2000);
125 l_return_status varchar2(1);
126
127 CURSOR txn_id_cur IS
128 SELECT transaction_id
129 FROM csi_transactions
130 WHERE source_dist_ref_id2 = p_rcv_txn_id
131 AND Transaction_Type_Id = cse_util_pkg.get_txn_type_id('PO_RECEIPT_INTO_PROJECT','PO');
132 BEGIN
133
134 x_return_status := fnd_api.g_ret_sts_success;
135 x_error_message := null;
136
137 savepoint one;
138
139 cse_po_receipt_into_project.get_rcv_transaction_details(
140 P_rcv_txn_id,
141 l_rcv_txn_tbl,
142 x_return_status,
143 x_error_message);
144
145 IF x_return_status = fnd_api.g_ret_sts_success THEN
146
147 OPEN txn_id_cur;
148 FETCH txn_id_cur INTO l_txn_id;
149 CLOSE txn_id_cur;
150
151 IF NOT l_rcv_txn_tbl.COUNT = 0 THEN
152 FOR i IN l_rcv_txn_tbl.FIRST .. l_rcv_txn_tbl.LAST
153 LOOP
154 l_rcv_txn_tbl(i).csi_transaction_id := l_txn_id;
155 END LOOP;
156
157 cse_po_receipt_into_project.interface_nl_to_pa(
158 l_rcv_txn_tbl,
159 l_return_status,
160 l_error_message);
161
162 IF l_return_status <> fnd_api.g_ret_sts_success THEN
163 RAISE fnd_api.g_exc_error;
164 END IF;
165
166 cse_po_receipt_into_project.cleanup_transaction_temps(p_rcv_txn_id);
167
168 END IF;
169 END IF;
170
171 EXCEPTION
172 WHEN fnd_api.g_exc_error THEN
173
174 l_txn_error_rec := cse_util_pkg.Init_Txn_Error_Rec;
175 l_txn_error_rec.transaction_id := l_txn_id;
176 l_txn_error_rec.error_text := l_error_message;
177 l_txn_error_rec.source_type := 'CSEPORCV';
178 l_txn_error_rec.source_id := l_txn_id;
179 l_txn_error_rec.transaction_type_id := 105;
180 cse_util_pkg.build_error_string(l_xml_string,'RCV_TRANSACTION_ID',p_rcv_txn_id);
181 l_txn_error_rec.message_string := l_xml_string;
182 l_txn_error_rec.error_stage := cse_datastructures_pub.g_pa_interface;
183
184 rollback to one;
185
186 csi_transactions_pvt.create_txn_error(
187 1.0,
188 fnd_api.g_true,
189 'F',
190 1,
191 l_txn_error_rec,
192 l_return_status,
193 l_msg_count,
194 l_msg_data,
195 l_txn_error_id);
196 END Pa_Interface;
197
198 END cse_po_noqueue_pvt;