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