DBA Data[Home] [Help]

PACKAGE BODY: APPS.XDP_DQUTILS

Source


1 PACKAGE BODY XDP_DQUTILS AS
2 /* $Header: XDPDQUTB.pls 120.1 2005/06/14 08:11:38 appldev  $ */
3 
4 
5 /********  PROCEDURE ValidateDequeuer ***********/
6 /*
7  * Author: V.Rajaram
8  * Date Created: Feb-22-1999
9  *
10  * INPUT:  Queue Type
11  * OUTPUT: Dequeue Procedure
12  *
13  *
14  * This Procedure checks if the queue name is valid. If yes, inserts
15  * the DQer instance entry in the DQer registration table and
16  * returns the correct deque procedure to be executed by the DQer.
17  * Else raises application error which is inturn trapped by the caller
18  *
19  *
20  * Usage: General
21  */
22 
23 Procedure RegisterDQ (p_QueueName in varchar2,
24                       p_DQPid in number,
25                       p_QueueProc OUT NOCOPY varchar2)
26 
27 is
28  e_InvalidQueueException exception;
29  ErrMsg varchar2(100);
30  l_InternalQName varchar2(80);
31  l_temp varchar2(100);
32 Begin
33 
34  /*
35   * Get the CallBack Function to start the Dequeuer
36   */
37 
38   BEGIN
39    select DQ_PROC_NAME, INTERNAL_Q_NAME
40    into p_QueueProc, l_InternalQName
41    from  XDP_DQ_CONFIGURATION
42    -- INTERNAL_Q_NAME is upper so no need to check
43    -- where UPPER( INTERNAL_Q_NAME ) = upper( p_QueueName);
44    -- skilaru 03/27/2001
45    where INTERNAL_Q_NAME = upper(p_QueueName);
46 
47 
48   EXCEPTION
49   WHEN NO_DATA_FOUND THEN
50     Raise e_InvalidQueueException;
51     ErrMsg := 'Queue Name: ' || p_QueueName || ' Not found';
52   END;
53 
54 
55  /* Every thing kewl insert into XDP_DQ_REGISTRATION with the Dequeuer */
56 
57   /* Get an Unique Queue Name */
58   select to_char(XDP_DQER_NAME_S.NEXTVAL) into l_temp from dual;
59   l_temp := p_QueueName || l_temp;
60 
61  insert into XDP_DQER_REGISTRATION (DQER_NAME,
62                                     DQER_PROCESS_ID,
63                                     INTERNAL_Q_NAME,
64                                     MODULE_NAME,
65                                     created_by,
66                                     creation_date,
67                                     last_updated_by,
68                                     last_update_date,
69                                     last_update_login
70                                     )
71                             values (l_temp,
72                                     p_DQPid,
73                                     l_InternalQName,
74                                     'DONTKNOW',
75                                     FND_GLOBAL.USER_ID,
76                                     sysdate,
77                                     FND_GLOBAL.USER_ID,
78                                     sysdate,
79                                     FND_GLOBAL.LOGIN_ID);
80 
81 EXCEPTION
82 WHEN e_InvalidQueueException then
83  RAISE_APPLICATION_ERROR(-20540, ErrMsg);
84 END RegisterDQ;
85 
86 
87 
88 /********  PROCEDURE ExecDQProc ***********/
89 /*
90  * Author: V.Rajaram
91  * Date Created: Feb-22-1999
92  *
93  * INPUT:  Dequeue Procedure
94  * OUTPUT: ErrorCode and Error String
95  *
96  * This procedure Executes the input dequeue procedure
97  * This can be used to launch and procedure also
98  *
99  * Usage: General
100  */
101 
102 Procedure ExecDQProc ( p_QueueProc in varchar2)
103 
104 is
105  l_ParamList XDP_UTILITIES.t_ParameterList;
106 Begin
107 
108 --   dbms_output.put_line('Calling Procedure: ' || p_QueueProc);
109 
110    XDP_UTILITIES.RunProc(0, p_QueueProc, l_ParamList);
111 
112 END ExecDQProc;
113 
114 Procedure DeregisterDQ (p_DQPid in number)
115 is
116 
117 begin
118 
119  delete from XDP_DQER_REGISTRATION
120  where DQER_PROCESS_ID = p_DQPid;
121 
122 end DeregisterDQ;
123 
124 End XDP_DQUTILS;