[Home] [Help]
PACKAGE BODY: APPS.IEM_WFSTARTPROCESS_PUB
Source
1 PACKAGE BODY IEM_WFSTARTPROCESS_PUB as
2 /* $Header: iempwfsb.pls 120.2 2005/12/29 15:57:46 rtripath ship $*/
3
4 G_PKG_NAME CONSTANT varchar2(30) :='IEM_WFSTARTPROCESS_PUB ';
5 G_RETRY_FOLDER varchar2(50):='/Retry';
6 G_ADMIN_FOLDER varchar2(50):='/Admin';
7 G_DEFAULT_FOLDER varchar2(50):='/Inbox';
8 G_IM_LINK varchar2(90);
9
10 PROCEDURE CallWorkflow(p_api_version_number IN NUMBER,
11 p_init_msg_list IN VARCHAR2 ,
12 p_commit IN VARCHAR2 ,
13 p_workflowProcess in varchar2 ,
14 p_Item_Type in varchar2 ,
15 itemkey in number,
16 p_itemuserkey in varchar2,
17 p_queue_opt in varchar2:='FOREVER',
18 x_return_status OUT NOCOPY VARCHAR2,
19 x_msg_count OUT NOCOPY NUMBER,
20 x_msg_data OUT NOCOPY VARCHAR2
21 ) IS
22
23 l_api_name VARCHAR2(255):='CallWorkflow';
24 l_api_version_number NUMBER:=1.0;
25 l_msg_id number;
26 l_msg_size number;
27 ll_msg_size varchar2(30);
28 l_sender_name varchar2(100);
29 l_user_name varchar2(100);
30 l_domain_name varchar2(100);
31 l_priority varchar2(128);
32 l_msg_status varchar2(30):='NULL';
33 l_key1 varchar2(50);
34 l_val1 varchar2(50);
35 l_process varchar2(50);
36 l_msg_count number;
37 l_email_account_id number;
38 l_return_status varchar2(6);
39 l_outval varchar2(200);
40 l_msg_data varchar2(1000);
41 l_key number;
42 l_wf_excep EXCEPTION;
43
44 BEGIN
45 -- Standard Start of API savepoint
46 SAVEPOINT CallWorkflow_PUB;
47 -- Standard call to check for call compatibility.
48 IF NOT FND_API.Compatible_API_Call (l_api_version_number,
49 p_api_version_number,
50 l_api_name,
51 G_PKG_NAME)
52 THEN
53 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
54 END IF;
55 -- Initialize message list if p_init_msg_list is set to TRUE.
56 IF FND_API.to_Boolean( p_init_msg_list )
57 THEN
58 FND_MSG_PUB.initialize;
59 END IF;
60 -- Initialize API return status to SUCCESS
61 x_return_status := FND_API.G_RET_STS_SUCCESS;
62
63 -- Standard callto get message count and if count is 1, get message info.
64 FND_MSG_PUB.Count_And_Get
65 ( p_count => x_msg_count,
66 p_data => x_msg_data
67 );
68 EXCEPTION
69 WHEN FND_API.G_EXC_ERROR THEN
70 ROLLBACK TO CallWorkFlow_PUB;
71 x_return_status := FND_API.G_RET_STS_ERROR ;
72 FND_MSG_PUB.Count_And_Get
73 ( p_count => x_msg_count,
74 p_data => x_msg_data
75 );
76 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
77 ROLLBACK TO CallWorkFlow_PUB;
78 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
79 FND_MSG_PUB.Count_And_Get
80 ( p_count => x_msg_count,
81 p_data => x_msg_data
82 );
83 WHEN l_wf_excep THEN
84 ROLLBACK TO CallWorkFlow_PUB;
85 WHEN OTHERS THEN
86 ROLLBACK TO CallWorkFlow_PUB;
87 x_return_status := FND_API.G_RET_STS_ERROR;
88 IF FND_MSG_PUB.Check_Msg_Level
89 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
90 THEN
91 FND_MSG_PUB.Add_Exc_Msg
92 ( G_PKG_NAME ,
93 l_api_name
94 );
95 END IF;
96 FND_MSG_PUB.Count_And_Get
97 ( p_count => x_msg_count ,
98 p_data => x_msg_data
99 );
100
101 END CallWorkFlow;
102
103 PROCEDURE LaunchProcess(ERRBUF OUT NOCOPY VARCHAR2,
104 ERRRET OUT NOCOPY VARCHAR2,
105 p_api_version_number IN NUMBER,
106 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
107 p_commit IN VARCHAR2 := FND_API.G_FALSE,
108 p_workflowProcess in varchar2 :=null,
109 p_Item_Type in varchar2 :=null,
110 p_qopt in varchar2:='FOREVER',
111 p_counter in number
112 ) IS
113 l_api_name VARCHAR2(255):='LaunchProcess';
114 l_api_version_number NUMBER:=1.0;
115 Itemuserkey varchar2(30) := 'iemmail_preproc';
116 l_itemkey varchar2(30);
117 l_msg_count number;
118 l_seq number;
119 l_Error_Message VARCHAR2(2000);
120 l_call_status BOOLEAN;
121 l_return_status varchar2(6);
122 l_msg_data varchar2(1000);
123 l_exit varchar2(1):='T';
124 l_status varchar2(1);
125 l_counter number:=1;
126 BEGIN
127 -- Standard Start of API savepoint
128 SAVEPOINT LaunchProcess_PUB;
129 -- Standard call to check for call compatibility.
130 IF NOT FND_API.Compatible_API_Call (l_api_version_number,
131 p_api_version_number,
132 l_api_name,
133 G_PKG_NAME)
134 THEN
135 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
136 END IF;
137 -- Initialize message list if p_init_msg_list is set to TRUE.
138 IF FND_API.to_Boolean( p_init_msg_list )
139 THEN
140 FND_MSG_PUB.initialize;
141 END IF;
142
143 EXCEPTION
144 WHEN FND_API.G_EXC_ERROR THEN
145 ROLLBACK TO LaunchProcess_PUB;
146 FND_MESSAGE.SET_NAME('IEM','IEM_LAUNCHPROCESS_EXEC_ERROR');
147 l_Error_Message := FND_MESSAGE.GET;
148 fnd_file.put_line(fnd_file.log, l_Error_Message);
149 l_call_status := FND_CONCURRENT.SET_COMPLETION_STATUS('ERROR',l_Error_Message);
150 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
151 ROLLBACK TO LaunchProcess_PUB;
152 FND_MESSAGE.SET_NAME('IEM','IEM_LAUNCHPROCESS_UNXPTD_ERR');
153 l_Error_Message := FND_MESSAGE.GET;
154 fnd_file.put_line(fnd_file.log, l_Error_Message);
155 l_call_status := FND_CONCURRENT.SET_COMPLETION_STATUS('ERROR',l_Error_Message);
156 WHEN OTHERS THEN
157 ROLLBACK TO LaunchProcess_PUB;
158 FND_MESSAGE.SET_NAME('IEM','IEM_LAUNCHPROCESS_OTHER_ERRORS');
159 l_Error_Message := SQLERRM;
160 fnd_file.put_line(fnd_file.log, l_Error_Message);
161 l_call_status := FND_CONCURRENT.SET_COMPLETION_STATUS('ERROR',l_Error_Message);
162 END LaunchProcess;
163
164 PROCEDURE ProcessRetry(ERRBUF OUT NOCOPY VARCHAR2,
165 ERRRET OUT NOCOPY VARCHAR2,
166 p_api_version_number in number,
167 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
168 p_commit IN VARCHAR2 := FND_API.G_TRUE,
169 p_workflowProcess in varchar2 :=null,
170 p_Item_Type in varchar2 :=null
171 ) IS
172
173 BEGIN
174 null;
175 END ProcessRetry;
176 PROCEDURE StopWorkflow(ERRBUF OUT NOCOPY VARCHAR2,
177 ERRRET OUT NOCOPY VARCHAR2,
178 p_api_version_number IN NUMBER,
179 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
180 p_commit IN VARCHAR2 := FND_API.G_TRUE
181 ) IS
182 l_api_name VARCHAR2(255):='StopWorkflow';
183 l_api_version_number NUMBER:=1.0;
184 l_msg_count number;
185 l_call_status BOOLEAN;
186 l_return_status varchar2(10);
187 l_Error_Message VARCHAR2(2000);
188 l_msg_data varchar2(240);
189 BEGIN
190 -- Standard Start of API savepoint
191 SAVEPOINT StopWorkflow_PUB;
192 -- Standard call to check for call compatibility.
193 IF NOT FND_API.Compatible_API_Call (l_api_version_number,
194 p_api_version_number,
195 l_api_name,
196 G_PKG_NAME)
197 THEN
198 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
199 END IF;
200
201 EXCEPTION
202 WHEN FND_API.G_EXC_ERROR THEN
203 ROLLBACK TO Stopworkflow_PUB;
204 FND_MESSAGE.SET_NAME('IEM','IEM_STOPWORKFLOW_EXEC_ERROR');
205 l_Error_Message := FND_MESSAGE.GET;
206 fnd_file.put_line(fnd_file.log, l_Error_Message);
207 l_call_status := FND_CONCURRENT.SET_COMPLETION_STATUS('ERROR',l_Error_Message);
208 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
209 ROLLBACK TO Stopworkflow_PUB;
210 FND_MESSAGE.SET_NAME('IEM','IEM_STOPWORKFLOW_UNXPTD_ERR');
211 l_Error_Message := FND_MESSAGE.GET;
212 fnd_file.put_line(fnd_file.log, l_Error_Message);
213 l_call_status := FND_CONCURRENT.SET_COMPLETION_STATUS('ERROR',l_Error_Message);
214 WHEN OTHERS THEN
215 ROLLBACK TO Stopworkflow_PUB;
216 FND_MESSAGE.SET_NAME('IEM','IEM_STOPWORKFLOW_OTHER_ERR');
217 l_Error_Message := SQLERRM;
218 fnd_file.put_line(fnd_file.log, l_Error_Message);
219 l_call_status := FND_CONCURRENT.SET_COMPLETION_STATUS('ERROR',l_Error_Message);
220
221 END StopWorkflow;
222 PROCEDURE PurgeWorkflow(ERRBUF OUT NOCOPY VARCHAR2,
223 ERRRET OUT NOCOPY VARCHAR2,
224 p_api_version_number IN NUMBER,
225 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
226 p_commit IN VARCHAR2 := FND_API.G_TRUE,
227 p_item_type IN VARCHAR2:='IEM_MAIL',
228 p_end_date IN varchar2
229 ) IS
230 l_api_name VARCHAR2(255):='PurgeWorkflow';
231 l_api_version_number NUMBER:=1.0;
232 l_msg_count number;
233 l_call_status BOOLEAN;
234 l_return_status varchar2(10);
235 l_error_message varchar2(200);
236 l_msg_data varchar2(1000);
237 CURSOR wf_err_data_csr is
238 SELECT item_key
239 from wf_item_activity_statuses
240 where item_type=p_item_type
241 and activity_status = 'ERROR'
242 and begin_date<=to_date(p_end_date,'YYYY/MM/DD HH24:MI:SS');
243 l_date date;
244 BEGIN
245 -- Standard Start of API savepoint
246 SAVEPOINT PurgeWorkflow_PUB;
247 -- Standard call to check for call compatibility.
248 IF NOT FND_API.Compatible_API_Call (l_api_version_number,
249 p_api_version_number,
250 l_api_name,
251 G_PKG_NAME)
252 THEN
253 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
254 END IF;
255 -- Initialize message list if p_init_msg_list is set to TRUE.
256 IF FND_API.to_Boolean( p_init_msg_list )
257 THEN
258 FND_MSG_PUB.initialize;
259 END IF;
260 -- Initialize API return status to SUCCESS
261 FOR wf_err_data_rec in wf_err_data_csr LOOP
262 BEGIN
263 wf_engine.abortprocess(p_item_type,wf_err_data_rec.item_key);
264 EXCEPTION WHEN OTHERS THEN
265 NULL;
266 END;
267 END LOOP;
268 l_date := to_date(p_end_Date,'YYYY/MM/DD HH24:MI:SS');
269 wf_purge.total(p_item_type,null,l_date);
270 EXCEPTION
271 WHEN FND_API.G_EXC_ERROR THEN
272 ROLLBACK TO Purgeworkflow_PUB;
273 FND_MESSAGE.SET_NAME('IEM','IEM_PURGEWORKFLOW_EXEC_ERROR');
274 l_Error_Message := FND_MESSAGE.GET;
275 fnd_file.put_line(fnd_file.log, l_Error_Message);
276 l_call_status := FND_CONCURRENT.SET_COMPLETION_STATUS('ERROR',l_Error_Message);
277 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
278 ROLLBACK TO Purgeworkflow_PUB;
279 FND_MESSAGE.SET_NAME('IEM','IEM_PURGEWORKFLOW_UNXPTD_ERR');
280 l_Error_Message := FND_MESSAGE.GET;
281 fnd_file.put_line(fnd_file.log, l_Error_Message);
282 l_call_status := FND_CONCURRENT.SET_COMPLETION_STATUS('ERROR',l_Error_Message);
283 WHEN OTHERS THEN
284 ROLLBACK TO Purgeworkflow_PUB;
285 FND_MESSAGE.SET_NAME('IEM','IEM_PURGEWORKFLOW_OTHER_ERR');
286 l_Error_Message := SQLERRM;
287 fnd_file.put_line(fnd_file.log, l_Error_Message);
288 l_call_status := FND_CONCURRENT.SET_COMPLETION_STATUS('ERROR',l_Error_Message);
289 END PurgeWorkflow;
290
291 END IEM_WFSTARTPROCESS_PUB ;