[Home] [Help]
PACKAGE BODY: APPS.AMS_GENERIC_NTFY_PVT
Source
1 PACKAGE BODY ams_generic_ntfy_pvt as
2 /* $Header: amsvgntb.pls 120.1 2005/06/15 02:03:32 appldev $ */
3
4 G_PKG_NAME CONSTANT VARCHAR2(30) := 'ams_generic_ntfy_pvt';
5 G_ITEMTYPE CONSTANT varchar2(30) := 'AMSGAPP';
6
7
8 PROCEDURE StartProcess
9 (p_activity_type IN VARCHAR2,
10 p_activity_id IN NUMBER,
11 p_item_key_suffix IN NUMBER,
12 p_workflowprocess IN VARCHAR2 DEFAULT NULL,
13 p_item_type IN VARCHAR2 DEFAULT NULL,
14 p_subject IN VARCHAR2,
15 p_send_by IN VARCHAR2 DEFAULT NULL,
16 p_sent_to IN VARCHAR2 DEFAULT NULL
17 )
18 IS
19 itemtype VARCHAR2(30) := nvl(p_item_type,'AMSGAPP');
20 itemkey VARCHAR2(30) := p_activity_type||to_char(p_activity_id)||':'||to_char(p_item_key_suffix);
21 itemuserkey VARCHAR2(80) := p_activity_type||p_activity_id;
22
23 l_requester_role VARCHAR2(100) ;
24 l_msg_count NUMBER;
25 l_msg_data VARCHAR2(4000);
26 l_error_msg VARCHAR2(4000);
27 x_resource_id NUMBER;
28 l_index NUMBER;
29 l_save_threshold NUMBER := wf_engine.threshold;
30 l_x_data VARCHAR2(4000);
31
32 BEGIN
33 FND_MSG_PUB.initialize();
34
35 AMS_Utility_PVT.debug_message('Start :Item Type : '||itemtype
36 ||' Item key : '||itemkey);
37
38 -- wf_engine.threshold := -1;
39 WF_ENGINE.CreateProcess (itemtype => itemtype,
40 itemkey => itemkey ,
41 process => p_workflowprocess);
42
43 WF_ENGINE.SetItemUserkey(itemtype => itemtype,
44 itemkey => itemkey ,
45 userkey => itemuserkey);
46
47
48 /*****************************************************************
49 Initialize Workflow Item Attributes
50 *****************************************************************/
51 WF_ENGINE.SetItemAttrText(itemtype => itemtype ,
52 itemkey => itemkey,
53 aname => 'AMS_ACTIVITY_TYPE',
54 avalue => p_activity_type );
55
56 -- Activity ID (primary Id of Activity Object)
57 WF_ENGINE.SetItemAttrNumber(itemtype => itemtype ,
58 itemkey => itemkey,
59 aname => 'AMS_ACTIVITY_ID',
60 avalue => p_activity_id );
61
62 WF_ENGINE.SetItemAttrText(itemtype => itemtype ,
63 itemkey => itemkey,
64 aname => 'AMS_SENT_BY',
65 avalue => p_send_by );
66
67 WF_ENGINE.SetItemAttrText(itemtype => itemtype ,
68 itemkey => itemkey,
69 aname => 'AMS_SEND_TO',
70 avalue => p_sent_to );
71
72 WF_ENGINE.SetItemAttrText(itemtype => itemtype ,
73 itemkey => itemkey,
74 aname => 'GEN_SUBJECT',
75 avalue => p_subject );
76
77 /*
78 l_x_data:=icx_sec.createRFURL( p_function_name => 'AMS_EVENTS',
79 p_function_id =>1005958,
80 p_application_id =>531,
81 p_responsibility_id =>21706,
82 p_security_group_id =>NULL,
83 p_session_id =>NULL
84 );
85 WF_ENGINE.SetItemAttrText(itemtype => itemtype ,
86 itemkey => itemkey,
87 aname => 'LAUNCH_URL',
88 avalue => l_x_data );
89 */
90
91 /* WF_ENGINE.SetItemAttrText(itemtype => itemtype,
92 itemkey => itemkey,
93 aname => 'AMS_GEN_NTF_APPROVER',
94 avalue => 'CHOANG' );
95 */
96
97 WF_ENGINE.SetItemAttrText(itemtype => itemtype,
98 itemkey => itemkey,
99 aname => 'AMS_DOCUMENT_ID',
100 avalue => ItemType||':'||ItemKey);
101
102 /*
103 wf_engine.SetItemAttrText(itemtype => itemtype,
104 itemkey => itemkey,
105 aname => 'AMS_GEN_DOCUMENT',
106 avalue => 'PLSQL:AMS_GENERIC_NTFY_PVT.AMS_GENERIC_NOTIFICATION/'||ItemType||':'||ItemKey);
107 */
108 WF_ENGINE.SetItemOwner(itemtype => itemtype,
109 itemkey => itemkey,
110 owner => p_send_by);
111
112
113 -- Start the Process
114 WF_ENGINE.StartProcess (itemtype => itemtype,
115 itemkey => itemkey);
116
117
118 -- wf_engine.threshold := l_save_threshold ;
119 EXCEPTION
120 WHEN OTHERS THEN
121 -- wf_engine.threshold := l_save_threshold ;
122 FND_MSG_PUB.Count_And_Get (
123 p_encoded => FND_API.G_FALSE,
124 p_count => l_msg_count,
125 p_data => l_msg_data);
126
127
128 IF (l_msg_count > 0) THEN
129 FOR I in 1 .. l_msg_count LOOP
130 fnd_msg_pub.Get
131 (p_msg_index => FND_MSG_PUB.G_NEXT,
132 p_encoded => FND_API.G_FALSE,
133 p_data => l_msg_data,
134 p_msg_index_out => l_index);
135 --dbms_output.put_line('message :'||l_msg_data);
136 END LOOP;
137 END IF;
138 RAISE;
139 END StartProcess;
140
141
142 --------------------------------------------------------------------------------
143 --
144 -- Procedure
145 -- Ntf_Approval(document_id in varchar2,
146 -- display_type in varchar2,
147 -- document in out varchar2,
148 -- document_type in out varchar2 )
149 ---------------------------------------------------------------------------------
150 PROCEDURE Ams_Generic_Notification(document_id in varchar2,
151 display_type in varchar2,
152 document in OUT NOCOPY varchar2,
153 document_type in OUT NOCOPY varchar2)
154 IS
155 l_pkg_name varchar2(80);
156 l_proc_name varchar2(80);
157 l_return_stat varchar2(1);
158 l_activity_type varchar2(80);
159 l_approval_type varchar2(80);
160 l_msg_data VARCHAR2(4000);
161 l_msg_count number;
162 l_error_msg VARCHAR2(4000);
163 l_index NUMBER;
164 dml_str varchar2(2000);
165 ItemType varchar2(80);
166 ItemKey varchar2(80);
167 BEGIN
168
169 ItemType := nvl(substr(document_id, 1,instr(document_id,':')-1),'AMSGAPP');
170 ItemKey := substr(document_id, instr(document_id,':')+1);
171
172
173 l_activity_type := wf_engine.GetItemAttrText(
174 itemtype => itemtype,
175 itemkey => itemkey,
176 aname => 'AMS_ACTIVITY_TYPE' );
177 IF l_activity_type is NULL THEN
178 RAISE FND_API.G_EXC_ERROR;
179 FND_MESSAGE.Set_Name('AMS','AMS_APPR_NO_ACTIVITY_TYPE');
180 FND_MSG_PUB.Add;
181 END IF;
182 ams_gen_approval_pvt.Get_Api_Name('WORKFLOW', l_activity_type, 'GEN_NOTIFY',l_approval_type, l_pkg_name, l_proc_name,l_return_stat);
183 IF (l_return_stat = 'S') THEN
184 dml_str := 'BEGIN ' || l_pkg_name||'.'||l_proc_name||'(:document_id,:display_type,:document,:document_type); END;';
185 EXECUTE IMMEDIATE dml_str USING IN document_id,IN display_type,IN OUT document,IN OUT document_type;
186 ELSE
187 RAISE FND_API.G_EXC_ERROR;
188 END IF;
189 /*
190 if (display_type = 'text/plain') then
191 document := document|| 'Requisition approval requested for:';
192 document := document|| chr(10)|| ' Number: '||ItemKey;
193 document_type := 'text/plain';
194 return;
195 end if;
196
197 if (display_type = 'text/html') then
198 document := document|| 'Requisition approval requested for:';
199 document := document|| chr(10)|| ' Number: '||ItemKey;
200 document_type := 'text/html';
201 return;
202 end if;
203 */
204 EXCEPTION
205 WHEN OTHERS THEN
206 -- wf_engine.threshold := l_save_threshold ;
207 FND_MSG_PUB.Count_And_Get (
208 p_encoded => FND_API.G_FALSE,
209 p_count => l_msg_count,
210 p_data => l_msg_data);
211
212
213 IF(l_msg_count > 0) THEN
214 FOR I in 1 .. l_msg_count LOOP
215 fnd_msg_pub.Get
216 (p_msg_index => FND_MSG_PUB.G_NEXT,
217 p_encoded => FND_API.G_FALSE,
218 p_data => l_msg_data,
219 p_msg_index_out => l_index);
220 -- dbms_output.put_line('message :'||l_msg_data);
221 END LOOP;
222 END IF;
223 RAISE;
224
225 END Ams_Generic_Notification;
226
227 -------------------------------------------------------------------------------
228 --
229 -- Procedure
230 -- Updat_staus(itemtype in varchar2,
231 -- itemkey in varchar2,
232 -- actid in number,
233 -- funcmode in varchar2,
234 -- resultout out varchar2 )
235 ---------------------------------------------------------------------------------
236 PROCEDURE Update_Gen_Status(itemtype IN varchar2,
237 itemkey IN varchar2,
238 actid in number,
239 funcmode in varchar2,
240 resultout OUT NOCOPY varchar2 )
241 IS
242 l_stat varchar2(80);
243
244 l_msg_count NUMBER;
245 l_msg_data VARCHAR2(4000);
246 l_error_msg VARCHAR2(4000);
247 l_index NUMBER;
248
249 BEGIN
250 l_stat := wf_engine.GetActivityAttrText(
251 itemtype => itemtype,
252 itemkey => itemkey,
253 actid => actid,
254 aname => 'UPDATE_STATUS' );
255 IF(l_stat is NULL) THEN
256 l_stat:='Value is NULL';
257 END IF;
258
259 WF_ENGINE.SetItemAttrText(itemtype => itemtype ,
260 itemkey => itemkey,
261 aname => 'UPDATE_GEN_STATUS',
262 avalue => l_stat );
263
264 EXCEPTION
265 WHEN OTHERS THEN
266 -- wf_engine.threshold := l_save_threshold ;
267 FND_MSG_PUB.Count_And_Get (
268 p_encoded => FND_API.G_FALSE,
269 p_count => l_msg_count,
270 p_data => l_msg_data);
271
272 IF (l_msg_count > 0) THEN
273 FOR I in 1 .. l_msg_count LOOP
274 fnd_msg_pub.Get
275 (p_msg_index => FND_MSG_PUB.G_NEXT,
276 p_encoded => FND_API.G_FALSE,
277 p_data => l_msg_data,
278 p_msg_index_out => l_index);
279 -- dbms_output.put_line('message :'||l_msg_data);
280 END LOOP;
281 END IF;
282 RAISE;
283
284 END Update_Gen_Status;
285
286 END ams_generic_ntfy_pvt;