DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKC_K_SIGN_ASMBLR_PVT

Source


1 PACKAGE BODY OKC_K_SIGN_ASMBLR_PVT AS
2 /* $Header: OKCRKSAB.pls 120.0 2005/05/26 09:50:57 appldev noship $ */
3 
4 	l_debug VARCHAR2(1) := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'),'N');
5 
6   g_pkg_name     CONSTANT varchar2(100) := 'OKC_K_SIGN_ASMBLR_PVT';
7 
8 
9   /* Bug#4033775 check for action being enabled.
10      Used in all action assemblers before putting
11      messages on the queue.
12   */
13   FUNCTION isActionEnabled (p_correlation  IN VARCHAR2)
14   RETURN VARCHAR2
15   IS
16 
17   CURSOR action_cur IS
18   SELECT enabled_yn
19   FROM okc_actions_b
20   WHERE correlation = p_correlation;
21   l_enabled_yn  VARCHAR2(1);
22 
23   BEGIN
24 
25     OPEN action_cur;
26     FETCH action_cur INTO l_enabled_yn;
27     CLOSE action_cur;
28 
29     RETURN (l_enabled_yn);
30 
31   EXCEPTION
32   WHEN NO_DATA_FOUND THEN
33   IF action_cur%ISOPEN THEN
34     CLOSE action_cur;
35   END IF;
36 
37   RETURN(null);
38 
39   END isActionEnabled;
40 
41   PROCEDURE acn_assemble(
42     p_api_version                  IN NUMBER,
43     p_init_msg_list                IN VARCHAR2 ,
44     x_return_status                OUT NOCOPY VARCHAR2,
45     x_msg_count                    OUT NOCOPY NUMBER,
46     x_msg_data                     OUT NOCOPY VARCHAR2,
47     p_contract_id                  IN NUMBER) IS
48 --
49     l_api_name            CONSTANT VARCHAR2(30) := 'ACN_ASSEMBLE';
50     l_api_version         NUMBER := 1.0;
51     l_init_msg_list       VARCHAR2(1) ;
52     l_return_status varchar2(1) := OKC_API.G_RET_STS_SUCCESS;
53 --
54     CURSOR k_cur IS
55     SELECT k.contract_number contract_number
56 	  ,k.contract_number_modifier contract_number_modifier
57 	  ,k.date_signed date_signed
58 	  ,k.estimated_amount estimated_amount
59 	  ,k.sts_code sts_code
60 	  ,c.cls_code cls_code
61 	  ,c.code subcls_code
62     FROM  okc_k_headers_b k,
63 	  okc_subclasses_v c
64     WHERE k.scs_code = c.code
65     AND   k.id = p_contract_id;
66     k_rec k_cur%ROWTYPE;
67 
68     CURSOR acn_cur IS
69     SELECT aae.element_name element_name,
70 	   aae.format_mask format_mask
71     FROM   okc_actions_b acn,
72 	   okc_action_attributes_b aae
73     WHERE  acn.id = aae.acn_id
74     AND    acn.correlation = 'KSIGN';
75     acn_rec acn_cur%ROWTYPE;
76 
77    l_contract_id varchar2(120) := to_char(p_contract_id);
78    l_contract_number varchar2(120);
79    l_contract_number_modifier varchar2(120);
80    l_date_signed varchar2(22);
81 --
82    l_rec okc_aq_pvt.corrid_rec_typ;
83    l_tbl okc_aq_pvt.msg_tab_typ;
84    i  NUMBER := 1;
85 --
86     BEGIN
87     -- call start_activity to create savepoint, check comptability
88     -- and initialize message list
89        l_return_status := OKC_API.START_ACTIVITY(l_api_name
90                                                 ,l_init_msg_list
91                                                 ,'_PVT'
92                                                 ,x_return_status
93                                                 );
94     -- check if activity started successfully
95        IF l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
96           RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
97        ELSIF l_return_status = OKC_API.G_RET_STS_ERROR THEN
98              RAISE OKC_API.G_EXCEPTION_ERROR;
99        END IF;
100 
101     l_rec.corrid := 'KSIGN';
102     -- check if action is enabled
103     IF isActionEnabled(l_rec.corrid) = 'Y' THEN
104     l_tbl := okc_aq_pvt.msg_tab_typ();
105 
106     FOR acn_rec IN acn_cur LOOP
107       OPEN k_cur;
108       FETCH k_cur INTO k_rec;
109         IF acn_rec.element_name = 'K_ID' THEN
110           l_tbl.extend;
111           l_tbl(i).element_name := acn_rec.element_name;
112           l_tbl(i).element_value := p_contract_id;
113         ELSIF acn_rec.element_name = 'K_NUMBER' THEN
114           l_tbl.extend;
115           l_tbl(i).element_name := 'K_NUMBER';
116           l_tbl(i).element_value := k_rec.contract_number;
117         ELSIF acn_rec.element_name = 'K_NBR_MOD' THEN
118           l_tbl.extend;
119           l_tbl(i).element_name := 'K_NBR_MOD';
120           l_tbl(i).element_value := k_rec.contract_number_modifier;
121         ELSIF acn_rec.element_name = 'K_DATE_SIGNED' THEN
122           l_tbl.extend;
123           l_tbl(i).element_name := 'K_DATE_SIGNED';
124 	  IF acn_rec.format_mask IS NOT NULL THEN
125             l_tbl(i).element_value := to_char(k_rec.date_signed,
126 					      acn_rec.format_mask);
127           ELSE
128           l_tbl(i).element_value := to_char(k_rec.date_signed,'DD-MON-YY');
129 	  END IF;
130         ELSIF acn_rec.element_name = 'K_CLASS' THEN
131           l_tbl.extend;
132           l_tbl(i).element_name := 'K_CLASS';
133           l_tbl(i).element_value := k_rec.cls_code;
134         ELSIF acn_rec.element_name = 'K_SUBCLASS' THEN
135           l_tbl.extend;
136           l_tbl(i).element_name := 'K_SUBCLASS';
137           l_tbl(i).element_value := k_rec.subcls_code;
138         ELSIF acn_rec.element_name = 'K_STATUS_CODE' THEN
139           l_tbl.extend;
140           l_tbl(i).element_name := 'K_STATUS_CODE';
141           l_tbl(i).element_value := k_rec.sts_code;
142         ELSIF acn_rec.element_name = 'ESTIMATED_AMOUNT' THEN
143           l_tbl.extend;
144           l_tbl(i).element_name := 'ESTIMATED_AMOUNT';
145           l_tbl(i).element_value := k_rec.estimated_amount;
146         END IF;
147         i := i+1;
148       CLOSE k_cur;
149     END LOOP;
150     OKC_aq_pvt.send_message(p_api_version   =>  l_api_version
151                             ,x_msg_count     => x_msg_count
152                             ,x_msg_data      => x_msg_data
153                             ,x_return_status => x_return_status
154                             ,p_corrid_rec    => l_rec
155                             ,p_msg_tab       => l_tbl
156                             ,p_queue_name    => okc_aq_pvt.g_event_queue_name
157                             );
158     -- check if activity started successfully
159        IF l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
160           RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
161        ELSIF l_return_status = OKC_API.G_RET_STS_ERROR THEN
162              RAISE OKC_API.G_EXCEPTION_ERROR;
163        END IF;
164 
165     END IF; -- isActionEnabled
166     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
167 
168     EXCEPTION
169        WHEN OKC_API.G_EXCEPTION_ERROR THEN
170        x_return_status := OKC_API.HANDLE_EXCEPTIONS
171        (l_api_name,
172         G_PKG_NAME,
173         'OKC_API.G_RET_STS_ERROR',
174         x_msg_count,
175         x_msg_data,
176         '_PVT');
177        WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
178        x_return_status := OKC_API.HANDLE_EXCEPTIONS
179        (l_api_name,
180         G_PKG_NAME,
181         'OKC_API.G_RET_STS_UNEXP_ERROR',
182         x_msg_count,
183         x_msg_data,
184         '_PVT');
185        WHEN OTHERS THEN
186        x_return_status := OKC_API.HANDLE_EXCEPTIONS
187        (l_api_name,
188         G_PKG_NAME,
189         'OTHERS',
190         x_msg_count,
191         x_msg_data,
192         '_PVT');
193     END acn_assemble;
194 
195 END OKC_K_SIGN_ASMBLR_PVT;