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