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