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