DBA Data[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;