[Home] [Help]
PACKAGE BODY: APPS.OKC_SCHR_AD_ASMBLR_PVT
Source
1 PACKAGE BODY OKC_SCHR_AD_ASMBLR_PVT AS
2 /* $Header: OKCRSARB.pls 120.0 2005/05/25 19:16:22 appldev 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_rtv_id IN NUMBER,
13 p_actual_date IN DATE) IS
14
15 l_api_name CONSTANT VARCHAR2(30) := 'acn_assemble';
16 l_api_version CONSTANT NUMBER := 1.0;
17 k NUMBER := 1;
18 l_corrid_rec okc_aq_pub.corrid_rec_typ;
19 l_msg_tbl okc_aq_pub.msg_tab_typ;
20 l_msg_count number;
21 l_msg_data varchar2(1000);
22 l_return_status varchar2(1);
23 l_actual_date date;
24
25 --Select all the attributes for the scheduled actual date recorded event
26 CURSOR elements_csr IS
27 SELECT aae.element_name, aae.format_mask
28 FROM okc_actions_v acn,okc_action_attributes_v aae
29 WHERE acn.id = aae.acn_id
30 AND acn.correlation = 'SHR_ADATE_REC' ;
31
32 -- The following cursor has been changed by MSENGUPT on 12/08/2001 to replace okc_rules_v to okc_rules_b
33 --Select the rule attributes for the time value id
34 CURSOR rul_cur(p_rtve_id IN NUMBER) IS
35 select rul.id rule_id,
36 rul.dnz_chr_id,
37 rul.rule_information1 rule_name
38 from okc_resolved_timevalues res, okc_rules_b rul
39 where res.id = p_rtve_id
40 and to_char(res.tve_id) = rul.rule_information2
41 and rul.rule_information_category = 'NTN';
42
43 --Select all the Contract attributes for a specific contract id
44 CURSOR chr_csr(p_chr_id IN NUMBER) IS
45 SELECT khr.id k_id,
46 khr.contract_number k_number,
47 khr.contract_number_modifier k_nbr_mod,
48 cls.cls_code k_class,
49 khr.scs_code k_subclass,
50 khr.estimated_amount k_estimated_amount,
51 khr.sts_code
52 FROM okc_k_headers_b khr,okc_subclasses_b cls
53 WHERE khr.id = p_chr_id
54 AND khr.scs_code = cls.code;
55
56 BEGIN
57
58 l_return_status := OKC_API.START_ACTIVITY
59 (l_api_name
60 ,p_init_msg_list
61 ,'_PROCESS'
62 ,x_return_status);
63
64 IF l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
65 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
66 ELSIF l_return_status = OKC_API.G_RET_STS_ERROR THEN
67 RAISE OKC_API.G_EXCEPTION_ERROR;
68 END IF;
69
70 --The correlation for the scheduled actual date recorded event
71 l_corrid_rec.corrid := 'SHR_ADATE_REC' ;
72 -- check if action is enabled
73 IF OKC_K_SIGN_ASMBLR_PVT.isActionEnabled(l_corrid_rec.corrid) = 'Y' THEN
74
75 FOR rule_rec in rul_cur(p_rtve_id => p_rtv_id) LOOP
76 FOR k1_rec in chr_csr(p_chr_id => rule_rec.dnz_chr_id) LOOP
77 k := 1;
78 --Initialize the table
79 l_msg_tbl := okc_aq_pvt.msg_tab_typ();
80 FOR elements_rec IN elements_csr LOOP
81 --Build the elements table
82 IF elements_rec.element_name = 'K_ID' THEN
83 l_msg_tbl.extend;
84 l_msg_tbl(k).element_name := elements_rec.element_name;
85 l_msg_tbl(k).element_value := k1_rec.k_id;
86 ELSIF elements_rec.element_name = 'K_NUMBER' THEN
87 l_msg_tbl.extend;
88 l_msg_tbl(k).element_name := elements_rec.element_name;
89 l_msg_tbl(k).element_value := k1_rec.k_number;
90 ELSIF elements_rec.element_name = 'K_NBR_MOD' THEN
91 l_msg_tbl.extend;
92 l_msg_tbl(k).element_name := elements_rec.element_name;
93 l_msg_tbl(k).element_value := k1_rec.k_nbr_mod;
94 ELSIF elements_rec.element_name = 'K_CLASS' THEN
95 l_msg_tbl.extend;
96 l_msg_tbl(k).element_name := elements_rec.element_name;
97 l_msg_tbl(k).element_value := k1_rec.k_class;
98 ELSIF elements_rec.element_name = 'K_SUBCLASS' THEN
99 l_msg_tbl.extend;
100 l_msg_tbl(k).element_name := elements_rec.element_name;
101 l_msg_tbl(k).element_value := k1_rec.k_subclass;
102 ELSIF elements_rec.element_name = 'ESTIMATED_AMOUNT' THEN
103 l_msg_tbl.extend;
104 l_msg_tbl(k).element_name := elements_rec.element_name;
105 l_msg_tbl(k).element_value := k1_rec.k_estimated_amount;
106 ELSIF elements_rec.element_name = 'K_STATUS_CODE' THEN
107 l_msg_tbl.extend;
108 l_msg_tbl(k).element_name := elements_rec.element_name;
109 l_msg_tbl(k).element_value := k1_rec.sts_code;
110 ELSIF elements_rec.element_name = 'RULE_ID' THEN
111 l_msg_tbl.extend;
112 l_msg_tbl(k).element_name := elements_rec.element_name;
113 l_msg_tbl(k).element_value := rule_rec.rule_id;
114 ELSIF elements_rec.element_name = 'RULE_NAME' THEN
115 l_msg_tbl.extend;
116 l_msg_tbl(k).element_name := elements_rec.element_name;
117 l_msg_tbl(k).element_value := rule_rec.rule_name;
118 ELSIF elements_rec.element_name = 'ADATE' THEN
119 l_msg_tbl.extend;
120 l_msg_tbl(k).element_name := elements_rec.element_name;
121 IF elements_rec.format_mask IS NOT NULL THEN
122 l_actual_date := to_char(p_actual_date, elements_rec.format_mask);
123 ELSE
124 l_actual_date := to_char(p_actual_date, 'DD-MON-YY');
125 END IF;
126 l_msg_tbl(k).element_value := l_actual_date;
127 END IF;
128 k := k + 1;
129 END LOOP;
130
131 -- call OKC_AQ_PVT.send_messages to generate the XML string and put it
132 -- on the queue
133 OKC_AQ_PUB.send_message(p_api_version =>1.0
134 ,p_init_msg_list => 'F'
135 ,x_msg_count => l_msg_count
136 ,x_msg_data => l_msg_data
137 ,x_return_status => l_return_status
138 ,p_corrid_rec => l_corrid_rec
139 ,p_msg_tab => l_msg_tbl
140 ,p_queue_name => okc_aq_pvt.g_event_queue_name);
141
142 IF l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
143 commit;
144 ELSIF l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
145 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
146 ELSIF l_return_status = OKC_API.G_RET_STS_ERROR THEN
147 RAISE OKC_API.G_EXCEPTION_ERROR;
148 END IF;
149
150 END LOOP;
151 END LOOP;
152 END IF; -- OKC_K_SIGN_ASMBLR_PVT.isActionEnabled
153 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
154 EXCEPTION
155 WHEN OKC_API.G_EXCEPTION_ERROR THEN
156 x_return_status := OKC_API.HANDLE_EXCEPTIONS
157 (l_api_name,
158 G_PKG_NAME,
159 'OKC_API.G_RET_STS_ERROR',
160 x_msg_count,
161 x_msg_data,
162 '_PROCESS');
163 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
164 x_return_status := OKC_API.HANDLE_EXCEPTIONS
165 (l_api_name,
166 G_PKG_NAME,
167 'OKC_API.G_RET_STS_UNEXP_ERROR',
168 x_msg_count,
169 x_msg_data,
170 '_PROCESS');
171 WHEN OTHERS THEN
172 x_return_status := OKC_API.HANDLE_EXCEPTIONS
173 (l_api_name,
174 G_PKG_NAME,
175 'OTHERS',
176 x_msg_count,
177 x_msg_data,
178 '_PROCESS');
179 END acn_assemble;
180
181 END OKC_SCHR_AD_ASMBLR_PVT;