[Home] [Help]
PACKAGE BODY: APPS.OKL_CONTRACT_APP_WF
Source
1 PACKAGE BODY OKL_CONTRACT_APP_WF AS
2 /* $Header: OKLRQAXB.pls 120.2 2006/07/21 13:14:03 akrangan noship $ */
3
4
5 -------------------------------------------------------------------------------
6 -- PROCEDURE l_change_k_status
7 -------------------------------------------------------------------------------
8 PROCEDURE l_change_k_status(p_chr_id IN NUMBER,
9 p_khr_status IN VARCHAR2,
10 x_return_status OUT NOCOPY VARCHAR2) IS
11
12 lx_return_status VARCHAR2(1);
13 lx_msg_count NUMBER;
14 lx_msg_data VARCHAR2(4000);
15
16 BEGIN
17
18 okl_contract_status_pub.update_contract_status(p_api_version => G_API_VERSION,
19 p_init_msg_list => G_FALSE,
20 p_khr_status => p_khr_status,
21 p_chr_id => p_chr_id,
22 x_return_status => lx_return_status,
23 x_msg_count => lx_msg_count,
24 x_msg_data => lx_msg_data);
25
26 IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
27 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
28 ELSIF lx_return_status = G_RET_STS_ERROR THEN
29 RAISE OKL_API.G_EXCEPTION_ERROR;
30 END IF;
31
32 okl_contract_status_pub.cascade_lease_status(p_api_version => G_API_VERSION,
33 p_init_msg_list => G_FALSE,
34 p_chr_id => p_chr_id,
35 x_return_status => lx_return_status,
36 x_msg_count => lx_msg_count,
37 x_msg_data => lx_msg_data);
38
39 IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
40 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
41 ELSIF lx_return_status = G_RET_STS_ERROR THEN
42 RAISE OKL_API.G_EXCEPTION_ERROR;
43 END IF;
44
45 x_return_status := lx_return_status;
46
47
48 EXCEPTION
49
50 WHEN OKL_API.G_EXCEPTION_ERROR THEN
51
52 x_return_status := G_RET_STS_ERROR;
53
54 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
55
56 x_return_status := G_RET_STS_UNEXP_ERROR;
57
58 WHEN OTHERS THEN
59
60 OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
61 p_msg_name => G_UNEXPECTED_ERROR,
62 p_token1 => G_SQLCODE_TOKEN,
63 p_token1_value => sqlcode,
64 p_token2 => G_SQLERRM_TOKEN,
65 p_token2_value => sqlerrm);
66
67 x_return_status := G_RET_STS_UNEXP_ERROR;
68
69 END l_change_k_status;
70
71
72 -------------------------------------------------------------------------------
73 -- PROCEDURE raise_contract_approval_event
74 -------------------------------------------------------------------------------
75 PROCEDURE raise_contract_approval_event (p_contract_id IN NUMBER,
76 x_return_status OUT NOCOPY VARCHAR2) IS
77
78 l_parameter_list wf_parameter_list_t;
79 l_key VARCHAR2(240);
80 l_event_name VARCHAR2(240) := 'oracle.apps.okl.so.acceptquote';
81 l_seq NUMBER;
82
83 CURSOR okl_key_csr IS
84 SELECT okl_wf_item_s.nextval
85 FROM dual;
86
87 BEGIN
88
89 OPEN okl_key_csr;
90 FETCH okl_key_csr INTO l_seq;
91 CLOSE okl_key_csr;
92
93 l_key := l_event_name ||l_seq;
94
95 wf_event.AddParameterToList('QUOTE_NUM', p_contract_id, l_parameter_list);
96 --added by akrangan
97 wf_event.AddParameterToList('ORG_ID',mo_global.get_current_org_id ,l_parameter_list);
98
99 --DBMS_OUTPUT.PUT_LINE('Calling wf_event.raise');
100 --DBMS_OUTPUT.PUT_LINE('l_key '||l_key);
101
102 wf_event.raise(p_event_name => l_event_name,
103 p_event_key => l_key,
104 p_parameters => l_parameter_list);
105
106 l_parameter_list.DELETE;
107 x_return_status := G_RET_STS_SUCCESS;
108
109 EXCEPTION
110
111 WHEN OTHERS THEN
112
113 OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
114 p_msg_name => G_UNEXPECTED_ERROR,
115 p_token1 => G_SQLCODE_TOKEN,
116 p_token1_value => sqlcode,
117 p_token2 => G_SQLERRM_TOKEN,
118 p_token2_value => sqlerrm);
119
120 x_return_status := G_RET_STS_UNEXP_ERROR;
121
122 END raise_contract_approval_event;
123
124
125
126 -------------------------------------------------------------------------------
127 -- PROCEDURE populate_attributes
128 -------------------------------------------------------------------------------
129 PROCEDURE populate_attributes(itemtype IN VARCHAR2,
130 itemkey IN VARCHAR2,
131 actid IN NUMBER,
132 funcmode IN VARCHAR2,
133 resultout OUT NOCOPY VARCHAR2) IS
134
135 l_api_name CONSTANT VARCHAR2(30) := 'populate_attributes';
136
137 l_contract_num OKC_K_HEADERS_V.CONTRACT_NUMBER%TYPE;
138 l_chrv_id OKC_K_HEADERS_V.ID%TYPE;
139
140 CURSOR c_fetch_k_number(p_contract_id OKC_K_HEADERS_V.ID%TYPE)
141 IS
142 SELECT chrv.contract_number
143 FROM okc_k_headers_v chrv
144 WHERE chrv.id = p_contract_id;
145
146 lx_return_status VARCHAR2(1);
147
148 BEGIN
149
150 --DBMS_OUTPUT.PUT_LINE('BEGIN populate_attributes '||'funcmode '||funcmode);
151
152 IF (funcmode = 'RUN') THEN
153
154 l_chrv_id := wf_engine.GetItemAttrText(itemtype => itemtype,
155 itemkey => itemkey,
156 aname => 'QUOTE_NUM');
157
158 --DBMS_OUTPUT.PUT_LINE('l_chrv_id '||l_chrv_id);
159
160 OPEN c_fetch_k_number(l_chrv_id);
161 FETCH c_fetch_k_number INTO l_contract_num;
162 CLOSE c_fetch_k_number;
163
164 wf_engine.SetItemAttrText (itemtype => itemtype,
165 itemkey => itemkey,
166 aname => 'QUOTE_NUM',
167 avalue => l_contract_num);
168
169 l_change_k_status(p_khr_status => 'ACCEPTED',
170 p_chr_id => l_chrv_id,
171 x_return_status => lx_return_status);
172
173 --DBMS_OUTPUT.PUT_LINE('Back from l_change_k_status '||lx_return_status);
174
175 IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
176 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
177 ELSIF lx_return_status = G_RET_STS_ERROR THEN
178 RAISE OKL_API.G_EXCEPTION_ERROR;
179 END IF;
180
181 resultout := 'COMPLETE:';
182 RETURN;
183
184 END IF;
185
186 -- CANCEL mode
187 IF (funcmode = 'CANCEL') then
188 resultout := 'COMPLETE:';
189 RETURN;
190 END IF;
191 -- TIMEOUT mode
192 IF (funcmode = 'TIMEOUT') then
193 resultout := 'COMPLETE:';
194 RETURN;
195 END IF;
196
197 EXCEPTION
198
199 WHEN OKL_API.G_EXCEPTION_ERROR THEN
200
201 wf_core.context(G_PKG_NAME, l_api_name, itemtype, itemkey, actid, funcmode);
202 RAISE;
203
204 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
205
206 wf_core.context(G_PKG_NAME, l_api_name, itemtype, itemkey, actid, funcmode);
207 RAISE;
208
209 WHEN OTHERS THEN
210
211 OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
212 p_msg_name => G_UNEXPECTED_ERROR,
213 p_token1 => G_SQLCODE_TOKEN,
214 p_token1_value => sqlcode,
215 p_token2 => G_SQLERRM_TOKEN,
216 p_token2_value => sqlerrm);
217
218 wf_core.context(G_PKG_NAME, l_api_name, itemtype, itemkey, actid, funcmode);
219 RAISE;
220
221 END populate_attributes;
222
223 END OKL_CONTRACT_APP_WF;