DBA Data[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;