[Home] [Help]
PACKAGE BODY: APPS.EDR_EVIDENCESTORE_PUB
Source
1 PACKAGE body EDR_EvidenceStore_PUB AS
2 /* $Header: EDRPEVRB.pls 120.0.12000000.1 2007/01/18 05:54:25 appldev ship $ */
3
4 -- Global variables
5 G_PKG_NAME CONSTANT varchar2(100) := 'EDR_EvidenceStore_PUB';
6
7
8 -- --------------------------------------
9 -- IN Parameters common to all APIs
10 -- p_api_version NUMBER version num param compared with local version num
11 -- x_return_status VARCHAR2 return status indicates the final state of API
12 -- x_msg_count NUMBER message count
13 -- x_msg_data VARCHAR2 message stack
14 -- ----------------------------------------
15 -- API name : Open_Document
16 -- Type : Public
17 -- Pre-reqs : None
18 -- Function : create a document instance for signature
19 -- : and can associate signatures before closing the docuemnt
20 -- Parameters
21 -- IN : p_psig_xml CLOB [null] source xml
22 -- : p_psig_document CLOB [null] source document
23 -- : p_psig_documentFormat VARCHAR2 [null] source document format
24 -- : p_psig_requester VARCHAR2 eSig requester user name
25 -- : p_psig_source VARCHAR2 [null] eSig source platform (DB, Form, sswa)
26 -- : p_event_name VARCHAR2 [null] eSig event name
27 -- : p_event_key VARCHAR2 [null] eSig event key
28 -- : p_wf_notif_id NUMBER [null] workflow notification id
29 -- OUT : x_document_id NUMBER opened document id
30 -- Versions : 1.0 17-Jul-03 created from edr_psig.openDocument
31 -- ---------------------------------------
32
33 PROCEDURE Open_Document (
34 p_api_version IN NUMBER,
35 p_init_msg_list IN VARCHAR2,
36 p_commit IN VARCHAR2,
37 x_return_status OUT NOCOPY VARCHAR2,
38 x_msg_count OUT NOCOPY NUMBER,
39 x_msg_data OUT NOCOPY VARCHAR2,
40 p_psig_xml IN CLOB,
41 p_psig_document IN CLOB,
42 p_psig_documentFormat IN VARCHAR2,
43 p_psig_REQUESTER IN VARCHAR2,
44 p_psig_SOURCE IN VARCHAR2,
45 P_EVENT_NAME IN VARCHAR2,
46 P_EVENT_KEY IN VARCHAR2,
47 p_wf_notif_id IN NUMBER,
48 x_document_id OUT NOCOPY NUMBER )
49 IS
50 l_api_version CONSTANT NUMBER := 1.0;
51 l_api_name CONSTANT VARCHAR2(50) := 'Open_Document';
52 l_error_code NUMBER;
53 l_error_mesg VARCHAR2(1000);
54 BEGIN
55 -- Standard call to check for call compatibility
56 IF NOT fnd_api.Compatible_API_Call ( l_api_version, p_api_version, l_api_name, G_PKG_NAME )
57 THEN RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
58 END IF;
59
60 -- Initialize message list if the caller asks me to do so
61 IF FND_API.to_Boolean( p_init_msg_list ) THEN
62 FND_MSG_PUB.initialize;
63 END IF;
64
65 -- Initialize API return status to success
66 x_return_status := FND_API.G_RET_STS_SUCCESS;
67
68 edr_psig.openDocument( P_PSIG_XML => p_psig_xml,
69 P_PSIG_DOCUMENT => p_psig_document,
70 P_PSIG_DOCUMENTFORMAT => p_psig_documentFormat,
71 P_PSIG_REQUESTER => p_psig_REQUESTER,
72 P_PSIG_SOURCE => p_psig_SOURCE,
73 P_EVENT_NAME => P_EVENT_NAME,
74 P_EVENT_KEY => P_EVENT_KEY,
75 p_WF_NID => p_wf_notif_id,
76 P_DOCUMENT_ID => x_document_id,
77 P_ERROR => l_error_code,
78 P_ERROR_MSG => l_error_mesg );
79 IF l_error_code > 0 THEN -- l_error_code = 21000 refers to TIMEZONE
80 fnd_message.Set_Name( 'EDR', 'EDR_PLS_STDMSG_GENERATED' );
81 fnd_message.Set_Token( 'ERR_CODE', l_error_code );
82 fnd_message.Set_Token( 'ERR_MESG', l_error_mesg );
83 fnd_msg_pub.Add;
84 raise fnd_api.G_EXC_ERROR;
85 END IF;
86 -- fetch the message off the dictionary stack and add to API message list
87 -- would only add the last one message in the above api call
88 -- need to do this in the above api after each fnd_message.set_name/set_token
89 FND_MSG_PUB.Add;
90
91 IF FND_API.To_Boolean( p_commit ) THEN
92 COMMIT WORK;
93 END IF;
94 -- Standard call to get message count, and if count is 1, get message info
95 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
96
97 EXCEPTION
98 WHEN FND_API.G_EXC_ERROR THEN
99 x_return_status := FND_API.G_RET_STS_ERROR ;
100 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
101 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
102 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
103 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
104 WHEN OTHERS THEN
105 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
106 IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
107 FND_MSG_PUB.Add_Exc_Msg ( g_pkg_name, l_api_name );
108 END IF;
109 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
110 END Open_Document;
111
112
113 -- --------------------------------------
114 -- API name : Change_Document_Status
115 -- Type : Public
116 -- Pre-reqs : None
117 -- Function : Manually change the status of a document
118 -- Parameters
119 -- IN : p_document_id NUMBER the document id
120 -- p_status VARCHAR2 new document status
121 -- Versions : 1.0 17-Jul-03 created from edr_psig.ChangeDocumentStatus
122 -- ---------------------------------------
123
124 PROCEDURE Change_DocumentStatus (
125 p_api_version IN NUMBER,
126 p_init_msg_list IN VARCHAR2,
127 p_commit IN VARCHAR2,
128 x_return_status OUT NOCOPY VARCHAR2,
129 x_msg_count OUT NOCOPY NUMBER,
130 x_msg_data OUT NOCOPY VARCHAR2,
131 p_document_id IN NUMBER,
132 p_document_status IN VARCHAR2 )
133 IS
134 l_count NUMBER;
135 l_api_name CONSTANT VARCHAR2(50) := 'Change_DocumentStatus';
136 l_api_version CONSTANT NUMBER := 1.0;
137 l_error_code NUMBER;
138 l_error_mesg VARCHAR2(1000);
139 BEGIN
140 IF NOT fnd_api.Compatible_API_Call ( l_api_version, p_api_version, l_api_name, G_PKG_NAME )
141 THEN RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
142 END IF;
143
144 -- Initialize message list if the caller asks me to do so
145 IF FND_API.to_Boolean( p_init_msg_list ) THEN
146 FND_MSG_PUB.initialize;
147 END IF;
148
149 -- Initialize API return status to success
150 x_return_status := FND_API.G_RET_STS_SUCCESS;
151
152 edr_psig.changeDocumentStatus(
153 P_DOCUMENT_ID => p_document_id,
154 p_status => p_document_status,
155 P_ERROR => l_error_code,
156 P_ERROR_MSG => l_error_mesg );
157
158 IF l_error_code > 0 THEN -- l_error_code = 21001 document closed or not exist
159 fnd_message.Set_Name('EDR', 'EDR_PLS_STDMSG_GENERATED' );
160 fnd_message.Set_Token( 'ERR_CODE', l_error_code );
161 fnd_message.Set_Token( 'ERR_MESG', l_error_mesg );
162 fnd_msg_pub.Add;
163 raise fnd_api.G_EXC_ERROR;
164 END IF;
165
166 IF FND_API.To_Boolean( p_commit ) THEN
167 COMMIT WORK;
168 END IF;
169 FND_MSG_PUB.Count_And_Get (p_count => x_msg_count, p_data => x_msg_data );
170
171 EXCEPTION
172 WHEN FND_API.G_EXC_ERROR THEN
173 x_return_status := FND_API.G_RET_STS_ERROR ;
174 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
175 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
176 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
177 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
178 WHEN OTHERS THEN
179 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
180 IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
181 FND_MSG_PUB.Add_Exc_Msg ( g_pkg_name, l_api_name );
182 END IF;
183 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
184 END Change_DocumentStatus;
185
186
187 -- --------------------------------------
188 -- API name : Update_Document
189 -- Type : Public
190 -- Pre-reqs : None
191 -- Function : Update a document for its xml/docu/requester etc
192 -- Parameters
193 -- IN : DOCUMENT_ID NUMBER id of the document to update
194 -- : PSIG_XML CLOB the xml to set
195 -- : PSIG_DOCUMENT CLOB the document to set
196 -- : PSIG_DOCUMENTFORMAT VARCHAR2 the document parameter format
197 -- : PSIG_REQUESTER VARCHAR2 the requester for the update
198 -- : PSIG_SOURCE VARCHAR2 [null] the source of the update (DB, FORM, SSWA)
199 -- : EVENT_NAME VARCHAR2 [null] the event name to update
200 -- : EVENT_KEY VARCHAR2 [null] the event key to update
201 -- : p_wf_notif_id NUMBER [null] the workflow notifcation id
202 -- Versions : 1.0 17-Jul-03 created from edr_psig.UpdateDocument
203 -- ---------------------------------------
204
205 PROCEDURE Update_Document (
206 p_api_version IN NUMBER,
207 p_init_msg_list IN VARCHAR2,
208 p_commit IN VARCHAR2,
209 x_return_status OUT NOCOPY VARCHAR2,
210 x_msg_count OUT NOCOPY NUMBER,
211 x_msg_data OUT NOCOPY VARCHAR2,
212 P_DOCUMENT_ID IN NUMBER,
213 P_PSIG_XML IN CLOB DEFAULT NULL,
214 P_PSIG_DOCUMENT IN CLOB DEFAULT NULL,
215 P_PSIG_DOCUMENTFORMAT IN VARCHAR2 DEFAULT NULL,
216 P_PSIG_REQUESTER IN VARCHAR2,
217 P_PSIG_SOURCE IN VARCHAR2 DEFAULT NULL,
218 P_EVENT_NAME IN VARCHAR2 DEFAULT NULL,
219 P_EVENT_KEY IN VARCHAR2 DEFAULT NULL,
220 p_wf_notif_ID IN NUMBER DEFAULT NULL )
221 IS
222 l_api_name CONSTANT VARCHAR2(50) := 'Update_Document';
223 l_api_version CONSTANT NUMBER := 1.0;
224 l_error_code NUMBER;
225 l_error_mesg VARCHAR2(1000);
226 BEGIN
227 IF NOT fnd_api.Compatible_API_Call ( l_api_version, p_api_version, l_api_name, G_PKG_NAME )
228 THEN RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
229 END IF;
230
231 -- Initialize message list if the caller asks me to do so
232 IF FND_API.to_Boolean( p_init_msg_list ) THEN
233 FND_MSG_PUB.initialize;
234 END IF;
235
236 -- Initialize API return status to success
237 x_return_status := FND_API.G_RET_STS_SUCCESS;
238
239 edr_psig.updateDocument( P_DOCUMENT_ID => p_document_id,
240 P_PSIG_XML => p_psig_xml,
241 P_PSIG_DOCUMENT => p_psig_document,
242 P_PSIG_DOCUMENTFORMAT => p_psig_documentFormat,
243 P_PSIG_REQUESTER => p_psig_REQUESTER,
244 P_PSIG_SOURCE => p_psig_SOURCE,
245 P_EVENT_NAME => P_EVENT_NAME,
246 P_EVENT_KEY => P_EVENT_KEY,
247 p_WF_NID => p_wf_notif_id,
248 P_ERROR => l_error_code,
249 P_ERROR_MSG => l_error_mesg );
250 IF l_error_code > 0 THEN -- l_error_code = 21001 document closed or not exist
251 fnd_message.Set_Name( 'EDR', 'EDR_PLS_STDMSG_GENERATED' );
252 fnd_message.Set_Token( 'ERR_CODE', l_error_code );
253 fnd_message.Set_Token( 'ERR_MESG', l_error_mesg );
254 fnd_msg_pub.Add;
255 raise fnd_api.G_EXC_ERROR;
256 END IF;
257 FND_MSG_PUB.Add;
258
259 IF FND_API.To_Boolean( p_commit ) THEN
260 COMMIT WORK;
261 END IF;
262 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
263
264 EXCEPTION
265 WHEN FND_API.G_EXC_ERROR THEN
266 x_return_status := FND_API.G_RET_STS_ERROR ;
267 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
268 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
269 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
270 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
271 WHEN OTHERS THEN
272 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
273 IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
274 FND_MSG_PUB.Add_Exc_Msg ( g_pkg_name, l_api_name );
275 END IF;
276 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
277 END Update_Document;
278
279
280 -- --------------------------------------
281 -- API name : Post_DocumentParameters
282 -- Type : Public
283 -- Pre-reqs : None
284 -- Function : Make a copy of eSignature notification
285 -- Parameters
286 -- IN : p_document_id NUMBER source document id
287 -- p_parameters_tbl params_table a table of parameters to delete
288 -- Versions : 1.0 17-Jul-03 created from edr_psig.PostDocumentParameters
289 -- ---------------------------------------
290
291 PROCEDURE Post_DocumentParameters (
292 p_api_version IN NUMBER,
293 p_init_msg_list IN VARCHAR2,
294 p_commit IN VARCHAR2,
295 x_return_status OUT NOCOPY VARCHAR2,
296 x_msg_count OUT NOCOPY NUMBER,
297 x_msg_data OUT NOCOPY VARCHAR2,
298 p_document_id IN NUMBER,
299 p_doc_parameters_tbl IN EDR_EvidenceStore_PUB.Params_tbl_type )
300 IS
301 l_api_name CONSTANT VARCHAR2(50) := 'Post_DocumentParameters';
302 l_api_version CONSTANT NUMBER := 1.0;
303 l_error_code NUMBER;
304 l_error_mesg VARCHAR2(1000);
305 l_params_tbl edr_psig.params_table;
306 lth NUMBER;
307 BEGIN
308 IF NOT fnd_api.Compatible_API_Call ( l_api_version, p_api_version, l_api_name, G_PKG_NAME )
309 THEN RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
310 END IF;
311
312 -- Initialize message list if the caller asks me to do so
313 IF FND_API.to_Boolean( p_init_msg_list ) THEN
314 FND_MSG_PUB.initialize;
315 END IF;
316
317 -- Initialize API return status to success
318 x_return_status := FND_API.G_RET_STS_SUCCESS;
319
323 edr_psig.postDocumentParameter(
320 FOR lth in 1..p_doc_parameters_tbl.COUNT LOOP
321 l_params_tbl(lth) := p_doc_parameters_tbl(lth);
322 END LOOP;
324 P_DOCUMENT_ID => p_document_id,
325 P_PARAMETERS => l_params_tbl,
326 P_ERROR => l_error_code,
327 P_ERROR_MSG => l_error_mesg );
328 IF l_error_code > 0 THEN -- l_error_code = 21001 document closed or not exist
329 fnd_message.Set_Name( 'EDR', 'EDR_PLS_STDMSG_GENERATED' );
330 fnd_message.Set_Token( 'ERR_CODE', l_error_code );
331 fnd_message.Set_Token( 'ERR_MESG', l_error_mesg );
332 fnd_msg_pub.Add;
333 raise fnd_api.G_EXC_ERROR;
334 END IF;
335 IF FND_API.To_Boolean( p_commit ) THEN
336 COMMIT WORK;
337 END IF;
338 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
339
340 EXCEPTION
341 WHEN FND_API.G_EXC_ERROR THEN
342 x_return_status := FND_API.G_RET_STS_ERROR ;
343 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
344 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
345 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
346 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
347 WHEN OTHERS THEN
348 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
349 IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
350 FND_MSG_PUB.Add_Exc_Msg ( g_pkg_name, l_api_name );
351 END IF;
352 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
353 END Post_DocumentParameters;
354
355
356 -- --------------------------------------
357
358 -- --------------------------------------
359 -- API name : Close_Document
360 -- Type : Public
361 -- Pre-reqs : None
362 -- Function : Close a document
363 -- Parameters
364 -- IN : p_document_id NUMBER source document id
365 -- Versions : 1.0 17-Jul-03 created from edr_psig.CloseDocument
366 -- ---------------------------------------
367
368 PROCEDURE Close_Document (
369 p_api_version IN NUMBER,
370 p_init_msg_list IN VARCHAR2,
371 p_commit IN VARCHAR2,
372 x_return_status OUT NOCOPY VARCHAR2,
373 x_msg_count OUT NOCOPY NUMBER,
374 x_msg_data OUT NOCOPY VARCHAR2,
375 p_document_id IN NUMBER )
376 IS
377 l_api_name CONSTANT VARCHAR2(50) := 'Close_Document';
378 l_api_version CONSTANT NUMBER := 1.0;
379 l_error_code NUMBER;
380 l_error_mesg VARCHAR2(1000);
381 l_mesg_text varchar2(4000);
382 BEGIN
383 IF NOT fnd_api.Compatible_API_Call ( l_api_version, p_api_version, l_api_name, G_PKG_NAME )
384 THEN RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
385 END IF;
386
387 -- Initialize message list if the caller asks me to do so
388 IF FND_API.to_Boolean( p_init_msg_list ) THEN
389 FND_MSG_PUB.initialize;
390 END IF;
391
392 -- Initialize API return status to success
393 x_return_status := FND_API.G_RET_STS_SUCCESS;
394
395 edr_psig.closeDocument( P_DOCUMENT_ID => p_document_id,
396 P_ERROR => l_error_code,
397 P_ERROR_MSG => l_error_mesg );
398 IF l_error_code > 0 THEN
399 fnd_message.Set_Name( 'EDR', 'EDR_PLS_STDMSG_GENERATED' );
400 fnd_message.Set_Token( 'ERR_CODE', l_error_code );
401 fnd_message.Set_Token( 'ERR_MESG', l_error_mesg );
402 fnd_msg_pub.Add;
403 raise fnd_api.G_EXC_ERROR;
404 END IF;
405
406 IF FND_API.To_Boolean( p_commit ) THEN
407 COMMIT WORK;
408 END IF;
409 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
410
411 EXCEPTION
412 WHEN FND_API.G_EXC_ERROR THEN
413 x_return_status := FND_API.G_RET_STS_ERROR ;
414 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
415 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
416 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
417 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
418 WHEN OTHERS THEN
419 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
420 IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
421 FND_MSG_PUB.Add_Exc_Msg ( g_pkg_name, l_api_name );
422 END IF;
423 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
424 END Close_Document;
425
426
427 -- --------------------------------------
428 -- API name : Cancel_Document
429 -- Type : Public
430 -- Pre-reqs : None
431 -- Function : Make a copy of eSignature notification
432 -- Parameters
433 -- IN : p_document_id NUMBER source document id
434 -- Versions : 1.0 17-Jul-03 created from edr_psig.cancelDocument
435 -- ---------------------------------------
436
437 PROCEDURE Cancel_Document (
438 p_api_version IN NUMBER,
439 p_init_msg_list IN VARCHAR2,
440 p_commit IN VARCHAR2,
441 x_return_status OUT NOCOPY VARCHAR2,
442 x_msg_count OUT NOCOPY NUMBER,
443 x_msg_data OUT NOCOPY VARCHAR2,
444 p_document_id IN NUMBER )
445
446 IS
447 l_api_name CONSTANT VARCHAR2(50) := 'Cancel_Document';
448 l_api_version CONSTANT NUMBER := 1.0;
449 l_error_code NUMBER;
450 l_error_mesg VARCHAR2(1000);
451 BEGIN
452 IF NOT fnd_api.Compatible_API_Call ( l_api_version, p_api_version, l_api_name, G_PKG_NAME )
453 THEN RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
454 END IF;
455
456 -- Initialize message list if the caller asks me to do so
457 IF FND_API.to_Boolean( p_init_msg_list ) THEN
458 FND_MSG_PUB.initialize;
459 END IF;
460
461 -- Initialize API return status to success
462 x_return_status := FND_API.G_RET_STS_SUCCESS;
463
464
468
465 edr_psig.cancelDocument( P_DOCUMENT_ID => p_document_id,
466 P_ERROR => l_error_code,
467 P_ERROR_MSG => l_error_mesg );
469 IF l_error_code > 0 THEN -- l_error_code = 21001 document closed or not exist
470 fnd_message.Set_Name( 'EDR', 'EDR_PLS_STDMSG_GENERATED' );
471 fnd_message.Set_Token( 'ERR_CODE', l_error_code );
472 fnd_message.Set_Token( 'ERR_MESG', l_error_mesg );
473 fnd_msg_pub.Add;
474 raise fnd_api.G_EXC_ERROR;
475 END IF;
476
477 IF FND_API.To_Boolean( p_commit ) THEN
478 COMMIT WORK;
479 END IF;
480 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
481
482 EXCEPTION
483 WHEN FND_API.G_EXC_ERROR THEN
484 x_return_status := FND_API.G_RET_STS_ERROR ;
485 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
486 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
487 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
488 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
489 WHEN OTHERS THEN
490 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
491 IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
492 FND_MSG_PUB.Add_Exc_Msg ( g_pkg_name, l_api_name );
493 END IF;
494 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
495 END Cancel_Document;
496
497
498 -- --------------------------------------
499 -- API name : Request_Signature
500 -- Type : Public
501 -- Pre-reqs : None
502 -- Function : Request the signature with detail information
503 -- Parameters
504 -- IN : P_DOCUMENT_ID NUMBER source document id
505 -- : P_USER_NAME VARCHAR2 request user name
506 -- : P_original_recipient VARCHAR2 [null] original recipient of notification if transferred
507 -- : P_overriding_comment varchar2 [null] user overriding comment if it's transferred
508 -- OUT : x_signature_id NUMBER generated signature id
509 -- Versions : 1.0 17-Jul-03 created from edr_psig.RequestSignature
510 -- ---------------------------------------
511
512 PROCEDURE Request_Signature (
513 p_api_version IN NUMBER,
514 p_init_msg_list IN VARCHAR2,
515 p_commit IN VARCHAR2,
516 x_return_status OUT NOCOPY VARCHAR2,
517 x_msg_count OUT NOCOPY NUMBER,
518 x_msg_data OUT NOCOPY VARCHAR2,
519 p_document_id IN NUMBER,
520 p_user_name IN VARCHAR2,
521 p_original_recipient IN VARCHAR2,
522 p_overriding_comment IN VARCHAR2,
523 x_signature_id OUT NOCOPY NUMBER )
524
525 IS
526 l_api_name CONSTANT VARCHAR2(50) := 'Request_Signature';
527 l_api_version CONSTANT NUMBER := 1.0;
528 l_error_code NUMBER;
529 l_error_mesg VARCHAR2(1000);
530 BEGIN
531 IF NOT fnd_api.Compatible_API_Call ( l_api_version, p_api_version, l_api_name, G_PKG_NAME )
532 THEN RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
533 END IF;
534
535 -- Initialize message list if the caller asks me to do so
536 IF FND_API.to_Boolean( p_init_msg_list ) THEN
537 FND_MSG_PUB.initialize;
538 END IF;
539
540 -- Initialize API return status to success
541 x_return_status := FND_API.G_RET_STS_SUCCESS;
542
543 edr_psig.requestSignature( P_DOCUMENT_ID => p_document_id,
544 P_USER_NAME => p_user_name,
545 P_ORIGINAL_RECIPIENT => p_original_recipient,
546 P_OVERRIDING_COMMENTS => p_overriding_comment,
547 P_SIGNATURE_ID => x_signature_id,
548 P_ERROR => l_error_code,
549 P_ERROR_MSG => l_error_mesg );
550
551 IF l_error_code > 0 THEN
552 fnd_message.Set_Name( 'EDR', 'EDR_PLS_STDMSG_GENERATED' );
553 fnd_message.Set_Token( 'ERR_CODE', l_error_code );
554 fnd_message.Set_Token( 'ERR_MESG', l_error_mesg );
555 fnd_msg_pub.Add;
556 raise fnd_api.G_EXC_ERROR;
557 END IF;
558
559
560 IF FND_API.To_Boolean( p_commit ) THEN
561 COMMIT WORK;
562 END IF;
563 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
564
565 EXCEPTION
566 WHEN FND_API.G_EXC_ERROR THEN
567 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
568 x_return_status := FND_API.G_RET_STS_ERROR ;
569 --FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
570 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
571 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
572 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
573 WHEN OTHERS THEN
574 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
575 IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
576 FND_MSG_PUB.Add_Exc_Msg ( g_pkg_name, l_api_name );
577 END IF;
578 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
579 END Request_Signature;
580
581
582 -- --------------------------------------
583 -- API name : Post_Signature
584 -- Type : Public
585 -- Pre-reqs : None
586 -- Function :
587 -- Parameters
588 -- IN : P_DOCUMENT_ID NUMBER source document id
589 -- : P_EVIDENCESTORE_ID NUMBER source evidence store id
590 -- : P_USER_NAME VARCHAR2 posting user name
591 -- : P_USER_RESPONSE VARCHAR2 user response/comment
592 -- : P_ORIGINAL_RECIPIENT VARCHAR2 [null] original recipient of notification if transferred
593 -- : P_OVERRIDING_COMMENT VARCHAR2 [null] user overriding comment if it's transferred notif
594 -- OUT : P_SIGNATURE_ID NUMBER generated signature id
595 -- Versions : 1.0 17-Jul-03 created from edr_psig.PostSignature
596 -- ---------------------------------------
597
598 PROCEDURE Post_Signature (
602 x_return_status OUT NOCOPY VARCHAR2,
599 p_api_version IN NUMBER,
600 p_init_msg_list IN VARCHAR2,
601 p_commit IN VARCHAR2,
603 x_msg_count OUT NOCOPY NUMBER,
604 x_msg_data OUT NOCOPY VARCHAR2,
605 p_document_id IN NUMBER,
606 p_evidenceStore_id IN VARCHAR2,
607 p_user_name IN VARCHAR2,
608 p_user_response IN VARCHAR2,
609 p_original_recipient IN VARCHAR2,
610 p_overriding_comment IN VARCHAR2,
611 x_signature_id OUT NOCOPY NUMBER )
612
613 IS
614 l_api_name CONSTANT VARCHAR2(50) := 'Post_Signature';
615 l_api_version CONSTANT NUMBER := 1.0;
616 l_error_code NUMBER;
617 l_error_mesg VARCHAR2(1000);
618 BEGIN
619 IF NOT fnd_api.Compatible_API_Call ( l_api_version, p_api_version, l_api_name, G_PKG_NAME )
620 THEN RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
621 END IF;
622
623 -- Initialize message list if the caller asks me to do so
624 IF FND_API.to_Boolean( p_init_msg_list ) THEN
625 FND_MSG_PUB.initialize;
626 END IF;
627
628 -- Initialize API return status to success
629 x_return_status := FND_API.G_RET_STS_SUCCESS;
630
631 edr_psig.postSignature( P_DOCUMENT_ID => p_document_id,
632 P_EVIDENCE_STORE_ID => p_evidenceStore_id,
633 P_USER_NAME => p_user_name,
634 P_USER_RESPONSE => p_user_response,
635 P_ORIGINAL_RECIPIENT => p_original_recipient,
636 P_OVERRIDING_COMMENTS => p_overriding_comment,
637 P_SIGNATURE_ID => x_signature_id,
638 P_ERROR => l_error_code,
639 P_ERROR_MSG => l_error_mesg );
640
641 IF l_error_code > 0 THEN
642 fnd_message.Set_Name( 'EDR', 'EDR_PLS_STDMSG_GENERATED' );
643 fnd_message.Set_Token( 'ERR_CODE', l_error_code );
644 fnd_message.Set_Token( 'ERR_MESG', l_error_mesg );
645 fnd_msg_pub.Add;
646 raise fnd_api.G_EXC_ERROR;
647 END IF;
648
649 IF FND_API.To_Boolean( p_commit ) THEN
650 COMMIT WORK;
651 END IF;
652 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
653
654 EXCEPTION
655 WHEN FND_API.G_EXC_ERROR THEN
656 x_return_status := FND_API.G_RET_STS_ERROR ;
657 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
658 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
659 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
660 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
661 WHEN OTHERS THEN
662 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
663 IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
664 FND_MSG_PUB.Add_Exc_Msg ( g_pkg_name, l_api_name );
665 END IF;
666 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
667 END Post_Signature;
668
669
670 -- --------------------------------------
671 -- API name : Post_SignatureParameters
672 -- Type : Public
673 -- Pre-reqs : None
674 -- Function : Make a copy of eSignature notification
675 -- Parameters
676 -- IN : p_signature_id NUMBER source signature id
677 -- p_parameters_tbl params_table the parameters to post as a table
678 -- Versions : 1.0 17-Jul-03 created from edr_psig.PostSignatureParameters
679 -- ---------------------------------------
680
681 PROCEDURE Post_SignatureParameters (
682 p_api_version IN NUMBER,
683 p_init_msg_list IN VARCHAR2,
684 p_commit IN VARCHAR2,
685 x_return_status OUT NOCOPY VARCHAR2,
686 x_msg_count OUT NOCOPY NUMBER,
687 x_msg_data OUT NOCOPY VARCHAR2,
688 p_signature_id IN NUMBER,
689 p_sig_parameters_tbl IN EDR_EvidenceStore_PUB.Params_tbl_type )
690 IS
691 l_api_name CONSTANT VARCHAR2(50) := 'Post_SignatureParameters';
692 l_api_version CONSTANT NUMBER := 1.0;
693 l_error_code NUMBER;
694 l_error_mesg VARCHAR2(1000);
695 l_params_tbl edr_psig.Params_Table;
696 lth NUMBER;
697 BEGIN
698 IF NOT fnd_api.Compatible_API_Call ( l_api_version, p_api_version, l_api_name, G_PKG_NAME )
699 THEN RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
700 END IF;
701
702 -- Initialize message list if the caller asks me to do so
703 IF FND_API.to_Boolean( p_init_msg_list ) THEN
704 FND_MSG_PUB.initialize;
705 END IF;
706
707 -- Initialize API return status to success
708 x_return_status := FND_API.G_RET_STS_SUCCESS;
709
710
711 FOR lth in 1..p_sig_parameters_tbl.COUNT LOOP
712 l_params_tbl(lth) := p_sig_parameters_tbl(lth);
713 END LOOP;
714 edr_psig.postSignatureParameter (
715 P_SIGNATURE_ID => p_signature_id,
716 P_PARAMETERS => l_params_tbl,
717 P_ERROR => l_error_code,
718 P_ERROR_MSG => l_error_mesg );
719
720 IF l_error_code > 0 THEN -- l_error_code = 21001 document closed or not exist
721 fnd_message.Set_Name( 'EDR', 'EDR_PLS_STDMSG_GENERATED' );
722 fnd_message.Set_Token( 'ERR_CODE', l_error_code );
723 fnd_message.Set_Token( 'ERR_MESG', l_error_mesg );
724 fnd_msg_pub.Add;
725 raise fnd_api.G_EXC_ERROR;
726 END IF;
727 IF FND_API.To_Boolean( p_commit ) THEN
728 COMMIT WORK;
729 END IF;
730 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
731
732 EXCEPTION
733 WHEN FND_API.G_EXC_ERROR THEN
734 x_return_status := FND_API.G_RET_STS_ERROR ;
735 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
736 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
737 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
738 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
739 WHEN OTHERS THEN
743 END IF;
740 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
741 IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
742 FND_MSG_PUB.Add_Exc_Msg ( g_pkg_name, l_api_name );
744 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
745 END Post_SignatureParameters;
746
747
748
749 -- --------------------------------------
750 -- API name : Get_DocumentDetails
751 -- Type : Public
752 -- Pre-reqs : None
753 -- Function : Make a copy of eSignature notification
754 -- Parameters
755 -- IN : p_document_id NUMBER source document id
756 -- OUT : x_document_rec Document_rec document details as a record
757 -- x_document_params_tbl params_table document parameters as a table
758 -- x_signatures_tbl Signature_tbl all signatures as a table on this document
759 -- Versions : 1.0 17-Jul-03 created from edr_psig.GetDocumentDetails
760 -- ---------------------------------------
761
762 PROCEDURE Get_DocumentDetails (
763 p_api_version IN NUMBER,
764 p_init_msg_list IN VARCHAR2,
765 x_return_status OUT NOCOPY VARCHAR2,
766 x_msg_count OUT NOCOPY NUMBER,
767 x_msg_data OUT NOCOPY VARCHAR2,
768 p_document_id IN NUMBER,
769 x_document_rec OUT NOCOPY edr_psig_documents%ROWTYPE,
770 x_doc_parameters_tbl OUT NOCOPY EDR_EvidenceStore_PUB.Params_tbl_type,
771 x_signatures_tbl OUT NOCOPY EDR_EvidenceStore_PUB.Signature_tbl_type )
772 IS
773 l_api_name CONSTANT VARCHAR2(50) := 'Get_DocumentDetails';
774 l_api_version CONSTANT NUMBER := 1.0;
775 l_error_code NUMBER;
776 l_error_mesg VARCHAR2(1000);
777 l_docDetl_rec edr_psig.Document;
778 l_params_tbl edr_psig.Params_Table;
779 l_sig_tbl edr_psig.SignatureTable;
780 lth NUMBER;
781 BEGIN
782 IF NOT fnd_api.Compatible_API_Call ( l_api_version, p_api_version, l_api_name, G_PKG_NAME )
783 THEN RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
784 END IF;
785
786 -- Initialize message list if the caller asks me to do so
787 IF FND_API.to_Boolean( p_init_msg_list ) THEN
788 FND_MSG_PUB.initialize;
789 END IF;
790
791 -- Initialize API return status to success
792 x_return_status := FND_API.G_RET_STS_SUCCESS;
793
794 edr_psig.getDocumentDetails (
795 P_DOCUMENT_ID => p_document_id,
796 P_DOCUMENT => l_docDetl_rec,
797 P_DOCPARAMS => l_params_tbl,
798 P_SIGNATURES => l_sig_tbl,
799 P_ERROR => l_error_code,
800 P_ERROR_MSG => l_error_mesg );
801 FOR lth in 1..l_params_tbl.COUNT LOOP
802 x_doc_parameters_tbl(lth) := l_params_tbl(lth);
803 END LOOP;
804 FOR lth in 1..l_sig_tbl.COUNT LOOP
805 x_signatures_tbl(lth) := l_sig_tbl(lth);
806 END LOOP;
807 x_document_rec.DOCUMENT_ID := l_docDetl_rec.DOCUMENT_ID;
808 x_document_rec.PSIG_XML := l_docDetl_rec.PSIG_XML;
809 x_document_rec.PSIG_DOCUMENT := l_docDetl_rec.PSIG_DOCUMENT;
810 x_document_rec.PSIG_DOCUMENTFORMAT := l_docDetl_rec.PSIG_DOCUMENTFORMAT;
811 x_document_rec.PSIG_TIMESTAMP := l_docDetl_rec.PSIG_TIMESTAMP;
812 x_document_rec.PSIG_TIMEZONE := l_docDetl_rec.PSIG_TIMEZONE;
813 x_document_rec.DOCUMENT_REQUESTER := l_docDetl_rec.DOCUMENT_REQUESTER;
814 x_document_rec.PSIG_STATUS := l_docDetl_rec.PSIG_STATUS;
815 x_document_rec.PSIG_SOURCE := l_docDetl_rec.PSIG_SOURCE;
816 x_document_rec.EVENT_NAME := l_docDetl_rec.EVENT_NAME;
817 x_document_rec.EVENT_KEY := l_docDetl_rec.EVENT_KEY;
818 x_document_rec.PRINT_COUNT := l_docDetl_rec.PRINT_COUNT;
819 x_document_rec.CREATION_DATE := l_docDetl_rec.CREATION_DATE;
820 x_document_rec.CREATED_BY := l_docDetl_rec.CREATED_BY;
821 x_document_rec.LAST_UPDATE_DATE := l_docDetl_rec.LAST_UPDATE_DATE;
822 x_document_rec.LAST_UPDATED_BY := l_docDetl_rec.LAST_UPDATED_BY;
823 x_document_rec.LAST_UPDATE_LOGIN := l_docDetl_rec.LAST_UPDATE_LOGIN;
824 IF l_error_code > 0 THEN -- l_error_code = 21001 document closed or not exist
825 fnd_message.Set_Name( 'EDR', 'EDR_PLS_STDMSG_GENERATED' );
826 fnd_message.Set_Token( 'ERR_CODE', l_error_code );
827 fnd_message.Set_Token( 'ERR_MESG', l_error_mesg );
828 fnd_msg_pub.Add;
829 raise fnd_api.G_EXC_ERROR;
830 END IF;
831 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
832
833 EXCEPTION
834 WHEN FND_API.G_EXC_ERROR THEN
835 x_return_status := FND_API.G_RET_STS_ERROR ;
836 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
837 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
838 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
839 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
840 WHEN OTHERS THEN
841 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
842 IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
843 FND_MSG_PUB.Add_Exc_Msg ( g_pkg_name, l_api_name );
844 END IF;
845 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
846 END Get_DocumentDetails;
847
848
849
850 -- Bug 4135005 : Start
851
852 -- --------------------------------------
853 -- API name : Get_SignatureDetails
854 -- Type : Public
855 -- Pre-reqs : None
856 -- Function : To Return the Signature parameters
857 -- Parameters
858 -- IN : p_signature_id NUMBER Signature id
859 -- OUT : x_signaturedetails Signature Signature details as a record
860 -- x_document_params_tbl params_table Signature parameters as a table
861 -- Versions : 1.0 28-Jul-05 created from edr_psig.GetSignatureDetails
862 -- ---------------------------------------
863
864
865
866 PROCEDURE GET_SignatureDetails (
867 p_api_version IN NUMBER,
868 p_init_msg_list IN VARCHAR2 default NULL,
869 x_return_status OUT NOCOPY VARCHAR2,
870 x_msg_count OUT NOCOPY NUMBER,
874 X_SIGNATUREPARAMS OUT NOCOPY EDR_EvidenceStore_PUB.params_tbl_type )
871 x_msg_data OUT NOCOPY VARCHAR2,
872 P_SIGNATURE_ID IN NUMBER DEFAULT NULL,
873 X_SIGNATUREDETAILS OUT NOCOPY EDR_PSIG_DETAILS%ROWTYPE,
875
876 IS
877 l_api_name CONSTANT VARCHAR2(50) := 'Get_SignatureDetails';
878 l_api_version CONSTANT NUMBER := 1.0;
879 l_error_code NUMBER;
880 l_error_mesg VARCHAR2(1000);
881 l_signaturedetails EDR_PSIG.Signature;
882 l_signatureparams EDR_PSIG.params_table;
883 lth NUMBER;
884
885 BEGIN
886 IF NOT fnd_api.Compatible_API_Call ( l_api_version, p_api_version, l_api_name, G_PKG_NAME )
887 THEN RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
888 END IF;
889
890 -- Initialize message list if the caller asks me to do so
891 IF FND_API.to_Boolean( p_init_msg_list ) THEN
892 FND_MSG_PUB.initialize;
893 END IF;
894
895 -- Initialize API return status to success
896 x_return_status := FND_API.G_RET_STS_SUCCESS;
897
898 EDR_PSIG.getSignatureDetails
899 (
900 P_SIGNATURE_ID => p_signature_id,
901 P_SIGNATUREDETAILS => l_signaturedetails,
902 P_SIGNATUREPARAMS => l_signatureparams,
903 P_ERROR => l_error_code,
904 P_ERROR_MSG => l_error_mesg );
905
906 FOR lth in 1..l_signatureparams.COUNT LOOP
907 X_SIGNATUREPARAMS(lth) := l_signatureparams(lth);
908 END LOOP;
909
910 X_SIGNATUREDETAILS.SIGNATURE_ID := l_SIGNATUREDETAILS.SIGNATURE_ID;
911 X_SIGNATUREDETAILS.DOCUMENT_ID := l_SIGNATUREDETAILS.DOCUMENT_ID;
912 X_SIGNATUREDETAILS.EVIDENCE_STORE_ID := l_SIGNATUREDETAILS.EVIDENCE_STORE_ID;
913 X_SIGNATUREDETAILS.USER_NAME := l_SIGNATUREDETAILS.USER_NAME;
914 X_SIGNATUREDETAILS.USER_RESPONSE := l_SIGNATUREDETAILS.USER_RESPONSE;
915 X_SIGNATUREDETAILS.SIGNATURE_TIMESTAMP := l_SIGNATUREDETAILS.SIGNATURE_TIMESTAMP;
916 X_SIGNATUREDETAILS.SIGNATURE_TIMEZONE := l_SIGNATUREDETAILS.SIGNATURE_TIMEZONE;
917 X_SIGNATUREDETAILS.SIGNATURE_STATUS := l_SIGNATUREDETAILS.SIGNATURE_STATUS;
918 X_SIGNATUREDETAILS.CREATION_DATE := l_SIGNATUREDETAILS.CREATION_DATE;
919 X_SIGNATUREDETAILS.CREATED_BY := l_SIGNATUREDETAILS.CREATED_BY;
920 X_SIGNATUREDETAILS.LAST_UPDATE_DATE := l_SIGNATUREDETAILS.LAST_UPDATE_DATE;
921 X_SIGNATUREDETAILS.LAST_UPDATE_LOGIN := l_SIGNATUREDETAILS.LAST_UPDATE_LOGIN;
922 X_SIGNATUREDETAILS.LAST_UPDATED_BY := l_SIGNATUREDETAILS.LAST_UPDATED_BY;
923 X_SIGNATUREDETAILS.USER_DISPLAY_NAME := l_SIGNATUREDETAILS.USER_DISPLAY_NAME;
924
925 IF l_error_code > 0 THEN -- l_error_code = 21001 document closed or not exist
926 fnd_message.Set_Name( 'EDR', 'EDR_PLS_STDMSG_GENERATED' );
927 fnd_message.Set_Token( 'ERR_CODE', l_error_code );
928 fnd_message.Set_Token( 'ERR_MESG', l_error_mesg );
929 fnd_msg_pub.Add;
930 raise fnd_api.G_EXC_ERROR;
931 END IF;
932 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
933
934 EXCEPTION
935 WHEN FND_API.G_EXC_ERROR THEN
936 x_return_status := FND_API.G_RET_STS_ERROR ;
937 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
938 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
939 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
940 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
941 WHEN OTHERS THEN
942 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
943 IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
944 FND_MSG_PUB.Add_Exc_Msg ( g_pkg_name, l_api_name );
945 END IF;
946 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
947
948 END Get_SignatureDetails;
949
950
951 -- Bug 4135005 : End
952
953
954
955
956
957
958
959 -- ----------------------------------------
960 -- API name : Capture_Signature
961 -- Type : Public
962 -- Function : capture the signature for single event and generate document id + signature id
963 -- Parameters
964 -- IN : p_psig_xml CLOB [null] source xml
965 -- : p_psig_document CLOB [null] source document
966 -- : p_psig_documentFormat VARCHAR2 source document format
967 -- : p_psig_requester VARCHAR2 eSig requester user name
968 -- : p_psig_source VARCHAR2 eSig source platform (DB, Form, sswa)
969 -- : p_event_name VARCHAR2 eSig event name
970 -- : p_event_key VARCHAR2 eSig event key
971 -- : p_wf_notif_id NUMBER workflow notification id
972 -- : p_doc_parameters_tbl EDR_EvidenceStore_PUB.Params_tbl_type
973 -- : p_user_name VARCHAR2
974 -- : p_original_recipient VARCHAR2 [null]
975 -- : p_overriding_comment VARCHAR2 [null]
976 -- : p_evidenceStore_id NUMBER,
977 -- : p_user_response VARCHAR2,
978 -- : p_sig_parameters_tbl
979 -- OUT : x_document_id NUMBER generated document id
980 -- : x_signature_id NUMBER captured signature id
981 -- Versions : 1.0 17-Jul-03 created
982 -- ---------------------------------------
983
984 PROCEDURE Capture_Signature (
985 p_api_version IN NUMBER,
986 p_init_msg_list IN VARCHAR2,
987 p_commit IN VARCHAR2,
988 x_return_status OUT NOCOPY VARCHAR2,
989 x_msg_count OUT NOCOPY NUMBER,
990 x_msg_data OUT NOCOPY VARCHAR2,
991 p_psig_xml IN CLOB,
992 p_psig_document IN CLOB,
993 p_psig_docFormat IN VARCHAR2,
994 p_psig_requester IN VARCHAR2,
995 p_psig_source IN VARCHAR2,
996 p_event_name IN VARCHAR2,
997 p_event_key IN VARCHAR2,
998 p_wf_notif_id IN NUMBER,
999 x_document_id OUT NOCOPY NUMBER,
1000 p_doc_parameters_tbl IN EDR_EvidenceStore_PUB.Params_tbl_type,
1001 p_user_name IN VARCHAR2,
1002 p_original_recipient IN VARCHAR2,
1006 p_user_response IN VARCHAR2,
1003 p_overriding_comment IN VARCHAR2,
1004 x_signature_id OUT NOCOPY NUMBER,
1005 p_evidenceStore_id IN NUMBER,
1007 p_sig_parameters_tbl IN EDR_EvidenceStore_PUB.Params_tbl_type )
1008 IS
1009 l_api_name CONSTANT VARCHAR2(50) := 'Capture_Signature';
1010 l_api_version CONSTANT NUMBER := 1.0;
1011 l_document_id NUMBER;
1012 l_signature_id NUMBER;
1013 BEGIN
1014 IF NOT fnd_api.Compatible_API_Call ( l_api_version, p_api_version, l_api_name, G_PKG_NAME )
1015 THEN RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
1016 END IF;
1017
1018 IF FND_API.to_Boolean( p_init_msg_list ) THEN
1019 FND_MSG_PUB.initialize;
1020 END IF;
1021
1022 x_return_status := FND_API.G_RET_STS_SUCCESS;
1023
1024 Open_Document ( p_api_version, p_init_msg_list, p_commit, x_return_status, x_msg_count,
1025 x_msg_data, p_psig_xml, p_psig_document, p_psig_docFormat,
1026 p_psig_requester, p_psig_source, p_event_name, p_event_key,
1027 p_wf_notif_id, x_document_id );
1028 l_document_id := x_document_id;
1029
1030 Post_DocumentParameters ( p_api_version, p_init_msg_list, p_commit, x_return_status,
1031 x_msg_count, x_msg_data, l_document_id, p_doc_parameters_tbl );
1032
1033 Request_Signature ( p_api_version, p_init_msg_list, p_commit, x_return_status, x_msg_count,
1034 x_msg_data, l_document_id, p_user_name, p_original_recipient,
1035 p_overriding_comment, x_signature_Id );
1036 l_signature_id := x_signature_Id;
1037
1038 Post_Signature ( p_api_version, p_init_msg_list, p_commit, x_return_status, x_msg_count,
1039 x_msg_data, l_document_id, p_evidenceStore_id, p_user_name, p_user_response,
1040 p_original_recipient, p_overriding_comment, x_signature_Id );
1041 l_signature_id := x_signature_Id;
1042
1043 Post_SignatureParameters ( p_api_version, p_init_msg_list, p_commit, x_return_status,
1044 x_msg_count, x_msg_data, l_signature_id, p_sig_parameters_tbl );
1045
1046 Close_Document( p_api_version, p_init_msg_list, p_commit, x_return_status,
1047 x_msg_count, x_msg_data, l_document_id );
1048
1049 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
1050 EXCEPTION
1051 WHEN FND_API.G_EXC_ERROR THEN
1052 x_return_status := FND_API.G_RET_STS_ERROR ;
1053 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
1054 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1055 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1056 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
1057 WHEN OTHERS THEN
1058 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1059 IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR )
1060 THEN FND_MSG_PUB.Add_Exc_Msg ( g_pkg_name, l_api_name );
1061 END IF;
1062 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
1063 END Capture_Signature;
1064
1065
1066 END EDR_EvidenceStore_PUB;
1067