DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKC_CG_UPD_ASMBLR_PVT

Source


1 PACKAGE BODY OKC_CG_UPD_ASMBLR_PVT AS
2 /* $Header: OKCRCUAB.pls 120.2 2005/07/15 16:21:06 pnayani noship $ */
3 
4 	l_debug VARCHAR2(1) := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'),'N');
5 
6 PROCEDURE acn_assemble(
7   p_api_version         IN NUMBER,
8   p_init_msg_list       IN VARCHAR2 ,
9   x_return_status       OUT NOCOPY VARCHAR2,
10   x_msg_count           OUT NOCOPY NUMBER,
11   x_msg_data            OUT NOCOPY VARCHAR2,
12   p_counter_id	        IN NUMBER
13   )  IS
14 
15  l_api_name      CONSTANT VARCHAR2(30) := 'ACN_ASSEMBLE';
16  l_api_version   CONSTANT NUMBER := 1.0;
17  l_init_msg_list VARCHAR2(1) ;
18  i               NUMBER;
19  l_corrid_rec    okc_aq_pvt.corrid_rec_typ;
20  l_msg_tbl       okc_aq_pvt.msg_tab_typ;
21  l_msg_count     number;
22  l_msg_data      varchar2(1000);
23  l_return_status varchar2(1);
24  l_counter_group_id  okx_counter_groups_v.counter_group_id%TYPE;
25  l_contract_id       okx_counter_groups_v.source_object_id%TYPE;
26 
27 
28 CURSOR ctr_grp_cur IS
29 /*R12 changes
30 SELECT cg.counter_group_id counter_group_id,
31        cg.source_object_code source_object_code,
32        cg.source_object_id source_object_id
33 FROM   okx_counter_grp_log_v log,
34        okx_counter_groups_v cg
35 WHERE  log.counter_group_id = cg.counter_group_id
36 AND    counter_grp_log_id  =  p_counter_grp_log_id;*/
37 SELECT ca.source_object_code source_object_code,
38        ca.source_object_id source_object_id
39        FROM   csi_counter_associations ca
40        WHERE  ca.counter_id  = p_counter_id;
41 
42 ctr_grp_rec  ctr_grp_cur%ROWTYPE;
43 
44 
45 CURSOR ename_cur IS
46 SELECT aae.element_name
47 FROM   okc_actions_b acn,
48        okc_action_attributes_b aae
49 WHERE  acn.id = aae.acn_id
50 AND    acn.correlation = 'CTR_GRP_UPD' ;
51 ename_rec  ename_cur%ROWTYPE;
52 
53 CURSOR kl_cur (x IN NUMBER) IS
54 SELECT dnz_chr_id k_id
55 FROM   okc_k_lines_b
56 WHERE  id = x;
57 kl_rec kl_cur%ROWTYPE;
58 
59 CURSOR ctr_cur IS
60 select net_reading counter_reading
61 from csi_counter_readings
62 where counter_id = p_counter_id
63 and nvl(disabled_flag,'N') = 'N'
64 order by value_timestamp desc;
65 
66 ctr_rec ctr_cur%ROWTYPE;
67 
68 BEGIN
69 
70  l_return_status := OKC_API.START_ACTIVITY
71                     (l_api_name
72                     ,l_init_msg_list
73                     ,'_PVT'
74                     ,x_return_status);
75 
76   IF l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
77      RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
78   ELSIF l_return_status = OKC_API.G_RET_STS_ERROR THEN
79      RAISE OKC_API.G_EXCEPTION_ERROR;
80   END IF;
81 
82  l_corrid_rec.corrid := 'CTR_GRP_UPD' ;
83  i := 0;
84 
85 -- check if action is enabled
86 IF OKC_K_SIGN_ASMBLR_PVT.isActionEnabled(l_corrid_rec.corrid) = 'Y' THEN
87  l_msg_tbl   :=    okc_aq_pvt.msg_tab_typ();
88  FOR ename_rec IN ename_cur
89  LOOP
90    OPEN ctr_grp_cur;
91    FETCH ctr_grp_cur INTO ctr_grp_rec;
92      IF ename_rec.element_name = 'COUNTER_ID' THEN
93        l_msg_tbl.extend;
94        i := i + 1;
95        l_msg_tbl(i).element_name    := ename_rec.element_name;
96        l_msg_tbl(i).element_value   := p_counter_id;
97      ELSIF ename_rec.element_name = 'COUNTER_READING' THEN
98 	        OPEN ctr_cur;
99 	        FETCH ctr_cur INTO ctr_rec;
100                 l_msg_tbl.extend;
101                 i := i + 1;
102                 l_msg_tbl(i).element_name    := ename_rec.element_name;
103                 l_msg_tbl(i).element_value   := ctr_rec.counter_reading;
104             CLOSE ctr_cur;
105      ELSIF ename_rec.element_name = 'SOURCE_OBJECT_CODE' THEN
106        l_msg_tbl.extend;
107        i := i + 1;
108        l_msg_tbl(i).element_name    := ename_rec.element_name;
109        l_msg_tbl(i).element_value   := ctr_grp_rec.source_object_code;
110      ELSIF ename_rec.element_name = 'SOURCE_OBJECT_ID' THEN
111        l_msg_tbl.extend;
112        i := i + 1;
113        l_msg_tbl(i).element_name    := ename_rec.element_name;
114        l_msg_tbl(i).element_value   := ctr_grp_rec.source_object_id;
115      ELSIF ename_rec.element_name = 'K_ID' THEN
116        IF  ctr_grp_rec.source_object_code = 'CONTRACT_LINE' AND
117 	   ctr_grp_rec.source_object_id IS NOT NULL THEN
118 	        OPEN kl_cur(ctr_grp_rec.source_object_id);
119 	        FETCH kl_cur INTO kl_rec;
120                 l_msg_tbl.extend;
121                 i := i + 1;
122                 l_msg_tbl(i).element_name    := ename_rec.element_name;
123                 l_msg_tbl(i).element_value   := kl_rec.k_id;
124             CLOSE kl_cur;
125        ELSIF  ctr_grp_rec.source_object_code = 'CP' THEN
126            l_msg_tbl.extend;
127            i := i + 1;
128            l_msg_tbl(i).element_name    := ename_rec.element_name;
129            l_msg_tbl(i).element_value   := NULL;
130        ELSIF  ctr_grp_rec.source_object_code IS NULL THEN
131            l_msg_tbl.extend;
132            i := i + 1;
133            l_msg_tbl(i).element_name    := ename_rec.element_name;
134            l_msg_tbl(i).element_value   := NULL;
135        END IF;
136      END IF;
137   CLOSE ctr_grp_cur;
138  END LOOP;
139 
140   OKC_AQ_PUB.send_message(p_api_version     => l_api_version
141                          ,x_msg_count       => l_msg_count
142                          ,x_msg_data        => l_msg_data
143                          ,x_return_status   => l_return_status
144                          ,p_corrid_rec      => l_corrid_rec
145                          ,p_msg_tab         => l_msg_tbl
146                          ,p_queue_name      => okc_aq_pvt.g_event_queue_name);
147 
148     IF l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
149         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
150     ELSIF l_return_status = OKC_API.G_RET_STS_ERROR THEN
151         RAISE OKC_API.G_EXCEPTION_ERROR;
152     END IF;
153  END IF; -- OKC_K_SIGN_ASMBLR_PVT.isActionEnabled
154  OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
155 
156 EXCEPTION
157  WHEN OKC_API.G_EXCEPTION_ERROR THEN
158   x_return_status := OKC_API.HANDLE_EXCEPTIONS
159                        (l_api_name,
160                         G_PKG_NAME,
161                       'OKC_API.G_RET_STS_ERROR',
162                         x_msg_count,
163                         x_msg_data,
164                         '_PVT');
165  WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
166   x_return_status := OKC_API.HANDLE_EXCEPTIONS
167                        (l_api_name,
168                         G_PKG_NAME,
169                        'OKC_API.G_RET_STS_UNEXP_ERROR',
170                         x_msg_count,
171                         x_msg_data,
172                         '_PVT');
173  WHEN OTHERS THEN
174   x_return_status := OKC_API.HANDLE_EXCEPTIONS
175                        (l_api_name,
176                         G_PKG_NAME,
177                         'OTHERS',
178                         x_msg_count,
179                         x_msg_data,
180                         '_PVT');
181 END acn_assemble;
182 
183 END OKC_CG_UPD_ASMBLR_PVT;