DBA Data[Home] [Help]

PACKAGE BODY: APPS.CSI_EAM_INTERFACE_GRP

Source


1 PACKAGE BODY csi_eam_interface_grp  AS
2 /* $Header: csigeamb.pls 120.2 2005/10/07 11:35:35 brmanesh noship $ */
3 
4 
5   PROCEDURE debug(p_message IN varchar2) IS
6   BEGIN
7     csi_t_gen_utility_pvt.add(p_message);
8   EXCEPTION
9     WHEN others THEN
10       null;
11   END debug;
12 
13   PROCEDURE wip_completion(
14     p_wip_entity_id   IN  number,
15     p_organization_id IN  number,
16     x_return_status   OUT nocopy varchar2,
17     x_error_message   OUT nocopy varchar2)
18   IS
19     l_message_id          number;
20     l_error_code          number;
21     l_error_message       varchar2(4000);
22     l_bypass_flag         varchar2(1);
23     l_return_status       varchar2(1) := fnd_api.g_ret_sts_success;
24     l_error_rec           csi_datastructures_pub.transaction_error_rec;
25     publish_error         exception;
26   BEGIN
27 
28     x_return_status := fnd_api.g_ret_sts_success;
29 
30    csi_t_gen_utility_pvt.build_file_name(
31       p_file_segment1 => 'csiinv',
32       p_file_segment2 => 'hook');
33 
34     debug('START IB integration from EAM process :'||to_char(sysdate,'DD-MON-YYYY HH24:MI:SS'));
35     debug('  wip_entity_id       : '||p_wip_entity_id);
36     debug('  organization_id     : '||p_organization_id);
37 
38     IF csi_datastructures_pub.g_install_param_rec.fetch_flag IS NULL THEN
39       csi_gen_utility_pvt.populate_install_param_rec;
40     END IF;
41 
42     l_bypass_flag := nvl(csi_datastructures_pub.g_install_param_rec.sfm_queue_bypass_flag, 'N');
43     debug('  bypass flag         : '||l_bypass_flag);
44 
45     l_error_rec.source_type          := 'CSIEAMWC';
46     l_error_rec.source_id            := p_wip_entity_id;
47     l_error_rec.source_header_ref_id := p_wip_entity_id;
48     l_error_rec.source_line_ref_id   := p_organization_id;
49     l_error_rec.transaction_type_id  := 92;
50     l_error_rec.processed_flag       := 'E';
51 
52     IF l_bypass_flag = 'N' THEN
53 
54       debug('  publishing message CSIEAMWC for '||p_wip_entity_id);
55 
56       XNP_CSIEAMWC_U.publish(
57         xnp$wip_entity_id     => p_wip_entity_id,
58         xnp$organization_id   => p_organization_id,
59         x_message_id          => l_message_id,
60         x_error_code          => l_error_code,
61         x_error_message       => l_error_message);
62 
63       IF l_error_message is not null THEN
64         RAISE publish_error;
65       END IF;
66 
67     ELSE
68 
69       debug('  bypassing the SFM Queue for CSIEAMWC '||p_wip_entity_id);
70 
71       csi_wip_trxs_pkg.eam_wip_completion(
72         p_wip_entity_id    => p_wip_entity_id,
73         p_organization_id  => p_organization_id,
74         px_trx_error_rec   => l_error_rec,
75         x_return_status    => l_return_status);
76 
77       IF l_return_status <> fnd_api.g_ret_sts_success THEN
78         RAISE fnd_api.g_exc_error;
79       END IF;
80 
81     END IF;
82 
83   EXCEPTION
84     WHEN fnd_api.g_exc_error THEN
85       csi_inv_trxs_pkg.log_csi_error(l_error_rec);
86       x_return_status := fnd_api.g_ret_sts_success;
87     WHEN publish_error THEN
88       csi_inv_trxs_pkg.log_csi_error(l_error_rec);
89       x_return_status := fnd_api.g_ret_sts_success;
90   END wip_completion;
91 
92 
93   PROCEDURE rebuildable_return(
94     p_wip_entity_id   IN  number,
95     p_organization_id IN  number,
96     p_instance_id     IN number,
97     x_return_status   OUT nocopy varchar2,
98     x_error_message   OUT nocopy varchar2)
99   IS
100     l_message_id          number;
101     l_error_code          number;
102     l_error_message       varchar2(4000);
103     l_inventory_item_id   number;
104     l_bypass_flag         varchar2(1);
105     l_return_status       varchar2(1) := fnd_api.g_ret_sts_success;
106     l_error_rec           csi_datastructures_pub.transaction_error_rec;
107     publish_error         exception;
108   BEGIN
109 
110     x_return_status := fnd_api.g_ret_sts_success;
111 
112    csi_t_gen_utility_pvt.build_file_name(
113       p_file_segment1 => 'csiinv',
114       p_file_segment2 => 'hook');
115 
116     debug('START IB integration from EAM process :'||to_char(sysdate,'DD-MON-YYYY HH24:MI:SS'));
117     debug('  wip_entity_id       : '||p_wip_entity_id);
118     debug('  organization_id     : '||p_organization_id);
119 
120     IF csi_datastructures_pub.g_install_param_rec.fetch_flag IS NULL THEN
121       csi_gen_utility_pvt.populate_install_param_rec;
122     END IF;
123 
124     l_bypass_flag := nvl(csi_datastructures_pub.g_install_param_rec.sfm_queue_bypass_flag, 'N');
125 
126     debug('  bypass flag         : '||l_bypass_flag);
127 
128     l_error_rec.source_type          := 'CSIEAMRR';
129     l_error_rec.source_id            := p_instance_id;
130     l_error_rec.source_header_ref_id := p_wip_entity_id;
131     l_error_rec.source_line_ref_id   := p_organization_id;
132     l_error_rec.transaction_type_id  := 93;
133     l_error_rec.processed_flag       := 'E';
134 
135     IF l_bypass_flag = 'N' THEN
136 
137       debug('  publishing message CSIEAMRR for '||p_instance_id);
138 
139       XNP_CSIEAMRR_U.publish(
140         xnp$wip_entity_id     => p_wip_entity_id,
141         xnp$organization_id   => p_organization_id,
142         xnp$instance_id       => p_instance_id,
143         x_message_id          => l_message_id,
144         x_error_code          => l_error_code,
145         x_error_message       => l_error_message);
146 
147       IF l_error_message is not null THEN
148         RAISE publish_error;
149       END IF;
150 
151     ELSE
152 
153       debug('  bypassing the SFM Queue for CSIEAMRR '||p_instance_id);
154 
155       csi_wip_trxs_pkg.eam_rebuildable_return(
156         p_wip_entity_id    => p_wip_entity_id,
157         p_organization_id  => p_organization_id,
158         p_instance_id      => p_instance_id,
159         px_trx_error_rec   => l_error_rec,
160         x_return_status    => l_return_status);
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     END IF;
167 
168   EXCEPTION
169     WHEN fnd_api.g_exc_error THEN
170       csi_inv_trxs_pkg.log_csi_error(l_error_rec);
171       x_return_status := fnd_api.g_ret_sts_success;
172     WHEN publish_error THEN
173       csi_inv_trxs_pkg.log_csi_error(l_error_rec);
174       x_return_status := fnd_api.g_ret_sts_success;
175   END rebuildable_return;
176 
177 END csi_eam_interface_grp;