[Home] [Help]
PACKAGE BODY: APPS.ONT_FEEDBACK_PKG
Source
1 PACKAGE BODY ONT_FEEDBACK_PKG AS
2 /* $Header: ONTWFCB.pls 120.1 2006/04/26 18:07:13 chhung noship $*/
3
4 PROCEDURE init_wf(p_recipient IN VARCHAR2,
5 p_name IN VARCHAR2,
6 p_email IN VARCHAR2,
7 p_comments IN VARCHAR2,
8 p_feedback IN VARCHAR2,
9 p_phone IN VARCHAR2) IS
10
11 l_itemtype WF_ITEMS.ITEM_TYPE%TYPE := 'ONTCUSTF';
12 l_itemkey WF_ITEMS.ITEM_KEY%TYPE;
13 l_WorkflowProcess VARCHAR2(30) := 'ONT_CUST_FEEDBACK';
14 l_display_name VARCHAR2(240);
15 l_Email_address VARCHAR2(240);
16 l_Notification_preference VARCHAR2(240);
17 l_Language VARCHAR2(240);
18 l_territory VARCHAR2(240);
19 /* Save the Threshold Value*/
20 l_save_threshold CONSTANT WF_ENGINE.THRESHOLD%TYPE :=WF_ENGINE.THRESHOLD;
21 BEGIN
22 /* Get the Item Key from Sequence */
23 SELECT OE_WF_FEEDBACK_S.nextval into l_itemkey from DUAL;
24
25 /* create the process */
26
27 WF_ENGINE.CREATEPROCESS (itemtype => l_itemtype,
28 itemkey => l_itemkey,
29 process => l_WorkflowProcess);
30
31 /* make sure that process runs in defer mode */
32 WF_ENGINE.THRESHOLD := -1;
33
34 /*Set All Workflow Attributes with Parameter Values */
35
36 WF_ENGINE.SETITEMATTRTEXT( itemtype => l_itemtype,
37 itemkey => l_itemkey,
38 aname => 'CUSTF_RECIPIENT',
39 avalue => p_recipient);
40
41 /* Get Notifier Name */
42 WF_DIRECTORY.GetRoleInfo(p_recipient,
43 l_Display_name,
44 l_Email_address,
45 l_Notification_preference,
46 l_Language,
47 L_Territory);
48 /* Set Workflow Attributes */
49
50 WF_ENGINE.SETITEMATTRTEXT( itemtype => l_itemtype,
51 itemkey => l_itemkey,
52 aname => 'CUSTF_RECIPIENT_NAME',
53 avalue => l_display_name);
54
55 WF_ENGINE.SETITEMATTRTEXT( itemtype => l_itemtype,
56 itemkey => l_itemkey,
57 aname => 'CUSTF_NAME',
58 avalue => p_name);
59
60 WF_ENGINE.SETITEMATTRTEXT( itemtype => l_itemtype,
61 itemkey => l_itemkey,
62 aname => 'CUSTF_EMAIL',
63 avalue => p_email);
64
65 WF_ENGINE.SETITEMATTRTEXT( itemtype => l_itemtype,
66 itemkey => l_itemkey,
67 aname => 'CUSTF_COMMENTS',
68 avalue => p_comments);
69
70
71 WF_ENGINE.SETITEMATTRTEXT(itemtype => l_itemtype,
72 itemkey => l_itemkey,
73 aname => 'CUSTF_FEEDBACK',
74 avalue => p_feedback);
75
76 WF_ENGINE.SETITEMATTRTEXT(itemtype => l_itemtype,
77 itemkey => l_itemkey,
78 aname => 'CUSTF_PHONE',
79 avalue => p_phone);
80
81 /* start the Workflow process */
82
83 WF_ENGINE.STARTPROCESS (itemtype => l_itemtype,
84 itemkey => l_itemkey);
85
86 /* Reset The Threshold Value */
87 WF_ENGINE.THRESHOLD := l_save_threshold;
88
89
90 EXCEPTION
91 WHEN OTHERS THEN
92 /* Reset The Threshold Value */
93 WF_ENGINE.THRESHOLD := l_save_threshold;
94 WF_CORE.CONTEXT ('ONT_FEEBBACK_PKG','INIT_WF',l_itemtype,l_itemkey,'Recipient-'||P_RECIPIENT,'Customer-'||P_NAME);
95 raise;
96 END init_wf;
97
98
99 /* PROCEDURE: init_wf2
100 * --------------------------------------
101 * It is called in $ont/java/custservice/webui/ReportDefectFormCO.java
102 * for starting workflow process DEFECTPROC to send out notification
103 */
104
105 PROCEDURE init_wf2(p_recipient IN VARCHAR2,
106 p_name IN VARCHAR2,
107 p_email IN VARCHAR2,
108 p_comments IN VARCHAR2,
109 p_phone IN VARCHAR2,
110 p_ordernum IN VARCHAR2,
111 p_shipnum IN VARCHAR2,
112 p_lot IN VARCHAR2,
113 p_products IN VARCHAR2,
114 p_shipdate IN VARCHAR2) IS
115
116 l_itemtype WF_ITEMS.ITEM_TYPE%TYPE := 'ONTDEFCT';
117 l_itemkey WF_ITEMS.ITEM_KEY%TYPE;
118 l_WorkflowProcess VARCHAR2(30) := 'DEFECTPROC';
119 l_display_name VARCHAR2(240);
120 l_Email_address VARCHAR2(240);
121 l_Notification_preference VARCHAR2(240);
122 l_Language VARCHAR2(240);
123 l_territory VARCHAR2(240);
124 /* Save the Threshold Value*/
125 l_save_threshold CONSTANT WF_ENGINE.THRESHOLD%TYPE :=WF_ENGINE.THRESHOLD;
126 BEGIN
127 /* Get the Item Key from Sequence */
128 SELECT OE_WF_FEEDBACK_S.nextval into l_itemkey from DUAL;
129
130 /* create the process */
131
132 WF_ENGINE.CREATEPROCESS (itemtype => l_itemtype,
133 itemkey => l_itemkey,
134 process => l_WorkflowProcess);
135
136 /* make sure that process runs in defer mode */
137 WF_ENGINE.THRESHOLD := -1;
138
139 /*Set All Workflow Attributes with Parameter Values */
140
141 WF_ENGINE.SETITEMATTRTEXT( itemtype => l_itemtype,
142 itemkey => l_itemkey,
143 aname => 'NOTIFIER',
144 avalue => p_recipient);
145
146 /* Get Notifier Name */
147 WF_DIRECTORY.GetRoleInfo(p_recipient,
148 l_Display_name,
149 l_Email_address,
150 l_Notification_preference,
151 l_Language,
152 L_Territory);
153 /* Set Workflow Attributes */
154
155
156 WF_ENGINE.SETITEMATTRTEXT( itemtype => l_itemtype,
157 itemkey => l_itemkey,
158 aname => 'NAME',
159 avalue => p_name);
160
161 WF_ENGINE.SETITEMATTRTEXT( itemtype => l_itemtype,
162 itemkey => l_itemkey,
163 aname => 'EMAIL',
164 avalue => p_email);
165
166 WF_ENGINE.SETITEMATTRTEXT( itemtype => l_itemtype,
167 itemkey => l_itemkey,
168 aname => 'COMMENTS',
169 avalue => p_comments);
170
171
172 WF_ENGINE.SETITEMATTRTEXT(itemtype => l_itemtype,
173 itemkey => l_itemkey,
174 aname => 'PHONE',
175 avalue => p_phone);
176
177 WF_ENGINE.SETITEMATTRTEXT(itemtype => l_itemtype,
178 itemkey => l_itemkey,
179 aname => 'ORDERNUM',
180 avalue => p_ordernum);
181
182 WF_ENGINE.SETITEMATTRTEXT(itemtype => l_itemtype,
183 itemkey => l_itemkey,
184 aname => 'SHIPNUM',
185 avalue => p_shipnum);
186
187 WF_ENGINE.SETITEMATTRTEXT(itemtype => l_itemtype,
188 itemkey => l_itemkey,
189 aname => 'ITEM',
190 avalue => p_products);
191
192
193 WF_ENGINE.SETITEMATTRTEXT(itemtype => l_itemtype,
194 itemkey => l_itemkey,
195 aname => 'LOTNUM',
196 avalue => p_lot);
197
198 WF_ENGINE.SETITEMATTRTEXT(itemtype => l_itemtype,
199 itemkey => l_itemkey,
200 aname => 'SHIPDATE',
201 avalue => p_shipdate);
202
203
204 /* start the Workflow process */
205
206 WF_ENGINE.STARTPROCESS (itemtype => l_itemtype,
207 itemkey => l_itemkey);
208
209 /* Reset The Threshold Value */
210 WF_ENGINE.THRESHOLD := l_save_threshold;
211
212
213 EXCEPTION
214 WHEN OTHERS THEN
215 /* Reset The Threshold Value */
216 WF_ENGINE.THRESHOLD := l_save_threshold;
217 WF_CORE.CONTEXT ('ONT_FEEBBACK_PKG','INIT_WF2',l_itemtype,l_itemkey,'Recipient-'||P_RECIPIENT,'Customer-'||P_NAME);
218 raise;
219 END init_wf2;
220
221
222 /* PROCEDURE: init_wf3
223 * -----------------------------------------
224 * It is called in $ont/java/custservice/webui/FeedbackFormCO.java
225 * for starting workflow process ONT_CUST_FEEDBACK to send out notification
226 */
227
228 PROCEDURE init_wf3(p_notifier IN VARCHAR2,
229 p_name IN VARCHAR2,
230 p_email IN VARCHAR2,
231 p_comments IN VARCHAR2,
232 p_ordernum IN VARCHAR2,
233 p_linenum IN VARCHAR2,
234 p_quantity IN VARCHAR2,
235 p_products IN VARCHAR2,
236 p_phone IN VARCHAR2) IS
237
238 l_itemtype WF_ITEMS.ITEM_TYPE%TYPE := 'ONTCUSTF';
239 l_itemkey WF_ITEMS.ITEM_KEY%TYPE;
240 l_WorkflowProcess VARCHAR2(30) := 'ONT_CUST_FEEDBACK';
241 l_display_name VARCHAR2(240);
242 l_Email_address VARCHAR2(240);
243 l_Notification_preference VARCHAR2(240);
244 l_Language VARCHAR2(240);
245 l_territory VARCHAR2(240);
246 /* Save the Threshold Value*/
247 l_save_threshold CONSTANT WF_ENGINE.THRESHOLD%TYPE :=WF_ENGINE.THRESHOLD;
248
249 BEGIN
250 /* Get the Item Key from Sequence */
251 SELECT OE_WF_FEEDBACK_S.nextval into l_itemkey from DUAL;
252
253 /* create the process */
254
255 WF_ENGINE.CREATEPROCESS (itemtype => l_itemtype,
256 itemkey => l_itemkey,
257 process => l_WorkflowProcess);
258
259 /* make sure that process runs in defer mode */
260 WF_ENGINE.THRESHOLD := -1;
261
262 /*Set All Workflow Attributes with Parameter Values */
263
264 WF_ENGINE.SETITEMATTRTEXT( itemtype => l_itemtype,
265 itemkey => l_itemkey,
266 aname => 'CUSTF_RECIPIENT',
267 avalue => p_notifier);
268
269 /* Get Notifier Name */
270 WF_DIRECTORY.GetRoleInfo(p_notifier,
271 l_Display_name,
272 l_Email_address,
273 l_Notification_preference,
274 l_Language,
275 L_Territory);
276 /* Set Workflow Attributes */
277
278
279 WF_ENGINE.SETITEMATTRTEXT( itemtype => l_itemtype,
280 itemkey => l_itemkey,
281 aname => 'CUSTF_NAME',
282 avalue => p_name);
283
284 WF_ENGINE.SETITEMATTRTEXT( itemtype => l_itemtype,
285 itemkey => l_itemkey,
286 aname => 'CUSTF_EMAIL',
287 avalue => p_email);
288
289 WF_ENGINE.SETITEMATTRTEXT( itemtype => l_itemtype,
290 itemkey => l_itemkey,
291 aname => 'CUSTF_COMMENTS',
292 avalue => p_comments);
293
294
295 WF_ENGINE.SETITEMATTRTEXT(itemtype => l_itemtype,
296 itemkey => l_itemkey,
297 aname => 'CUSTF_PHONE',
298 avalue => p_phone);
299
300 WF_ENGINE.SETITEMATTRTEXT(itemtype => l_itemtype,
301 itemkey => l_itemkey,
302 aname => 'CUSTF_ORDERNUM',
303 avalue => p_ordernum);
304
305 WF_ENGINE.SETITEMATTRTEXT(itemtype => l_itemtype,
306 itemkey => l_itemkey,
307 aname => 'CUSTF_LINENUM',
308 avalue => p_linenum);
309
310 WF_ENGINE.SETITEMATTRTEXT(itemtype => l_itemtype,
311 itemkey => l_itemkey,
312 aname => 'CUSTF_PRODUCT',
313 avalue => p_products);
314
315
316 WF_ENGINE.SETITEMATTRTEXT(itemtype => l_itemtype,
317 itemkey => l_itemkey,
318 aname => 'CUSTF_QUANTITY',
319 avalue => p_quantity);
320
321
322
323 /* start the Workflow process */
324
325 WF_ENGINE.STARTPROCESS (itemtype => l_itemtype,
326 itemkey => l_itemkey);
327
328 /* Reset The Threshold Value */
329 WF_ENGINE.THRESHOLD := l_save_threshold;
330
331
332 EXCEPTION
333 WHEN OTHERS THEN
334 /* Reset The Threshold Value */
335 WF_ENGINE.THRESHOLD := l_save_threshold;
336 WF_CORE.CONTEXT ('ONT_FEEBBACK_PKG','INIT_WF3',l_itemtype,l_itemkey,'Recipient-'||P_NOTIFIER,'Customer-'||P_NAME);
337 raise;
338 END init_wf3;
339
340
341 END ONT_FEEDBACK_PKG;