1 PACKAGE XDP_AQ_UTILITIES AUTHID CURRENT_USER AS
2 /* $Header: XDPAQUTS.pls 120.1 2005/06/15 21:52:13 appldev $ */
3
4 -- PL/SQL Specification
5 -- Define exception
6 e_QTimeOut EXCEPTION;
7 PRAGMA EXCEPTION_INIT(e_QTimeOut, -25228);
8 e_QNavOut EXCEPTION;
9 PRAGMA EXCEPTION_INIT(e_QNavOut, -25237);
10 resource_busy exception;
11 pragma exception_init(resource_busy, -00054);
12
13 e_NothingToDequeueException exception;
14 stop_processing exception;
15
16 --Global variables
17 g_msg_wait_timeout NUMBER := 10;
18 g_sleep_time NUMBER := 0.01;
19
20 --
21 -- Start SFM AQs
22 --
23 PROCEDURE Start_WF_AQ(
24 p_return_code OUT NOCOPY NUMBER,
25 p_error_description OUT NOCOPY VARCHAR2);
26
27 --
28 -- Start an AQ
29 --
30 PROCEDURE Start_WF_AQ(
31 p_queue_name IN varchar2,
32 p_queue_table IN varchar2,
33 p_payload IN varchar2,
34 p_expq_name IN varchar2 DEFAULT NULL,
35 p_max_retries IN number default 0,
36 p_return_code OUT NOCOPY NUMBER,
37 p_error_description OUT NOCOPY VARCHAR2);
38
39 --
40 -- Stop the SFM AQ
41 --
42 PROCEDURE STOP_WF_AQ(
43 p_return_code OUT NOCOPY NUMBER,
44 p_error_description OUT NOCOPY VARCHAR2);
45 --
46 -- DROP the SFM AQ
47 --
48 PROCEDURE DROP_WF_AQ(
49 p_return_code OUT NOCOPY NUMBER,
50 p_error_description OUT NOCOPY VARCHAR2);
51
52 /*************** Commented out by SPUSEGAO as pending order Queue has been removed
53 --
54 -- Add order to pending queue
55 --
56 PROCEDURE Pending_Order_EQ(
57 p_order_id IN NUMBER,
58 p_prov_date IN DATE,
59 p_priority IN NUMBER DEFAULT 100,
60 p_return_code OUT NOCOPY NUMBER,
61 p_error_description OUT NOCOPY VARCHAR2);
62
63 ****************/
64 --
65 -- Dequeue an order from the pending order queue
66 --
67
68 PROCEDURE Pending_Order_DQ;
69
70 /*************** Commented out by SPUSEGAO as pending order Queue has been removed
71
72 PROCEDURE Pending_Order_DQ (p_message_wait_timeout IN NUMBER DEFAULT 1,
73 p_correlation_id IN VARCHAR2,
74 x_message_key OUT NOCOPY VARCHAR2,
75 x_queue_timed_out OUT NOCOPY VARCHAR2);
76
77 ****************/
78
79 /*
80 --
81 -- Remove an order from the pending order queue
82 -- Obsolete
83 PROCEDURE Remove_Pending_Order(
84 p_order_id IN NUMBER,
85 p_return_code OUT NOCOPY NUMBER,
86 p_error_description OUT NOCOPY VARCHAR2);
87 */
88
89 --
90 -- Add order to order processor queue
91 --
92 PROCEDURE Add_OrderToProcessorQ(
93 p_order_id IN NUMBER ,
94 p_order_type in varchar2 default null,
95 p_priority IN NUMBER DEFAULT 100,
96 p_prov_date IN DATE DEFAULT SYSDATE,
97 p_wf_item_type IN varchar2,
98 p_wf_item_key IN Varchar2);
99
100 /************** Commented out as this code was being executed by old C dequeuers
101 --
102 -- Dequeue from order processor queue
103 --
104 PROCEDURE Start_OrderProcessor_Workflow;
105
106 ****************/
107
108 PROCEDURE Start_OrderProcessor_Workflow (p_message_wait_timeout IN NUMBER DEFAULT 1,
109 p_correlation_id IN VARCHAR2,
110 x_message_key OUT NOCOPY VARCHAR2,
111 x_queue_timed_out OUT NOCOPY VARCHAR2);
112
113 --
114 -- Allow API to start workitem WF through enqueue
115 --
116 PROCEDURE Add_WorkItem_ToQ(
117 p_order_id IN NUMBER,
118 p_wi_instance_id IN NUMBER,
119 p_prov_date IN DATE,
120 p_wf_item_type IN VARCHAR2 ,
121 p_wf_item_key IN VARCHAR2,
122 p_priority IN number DEFAULT 100,
123 p_return_code OUT NOCOPY NUMBER,
124 p_error_description OUT NOCOPY VARCHAR2);
125
126 /************** Commented out as this code was being executed by old C dequeuers
127 --
128 -- Dequeue from workitem queue
129 --
130 Procedure Start_Workitem_Workflow;
131
132 ****************/
133
134 PROCEDURE Start_Workitem_Workflow (p_message_wait_timeout IN NUMBER DEFAULT 1,
135 p_correlation_id IN VARCHAR2,
136 x_message_key OUT NOCOPY VARCHAR2,
137 x_queue_timed_out OUT NOCOPY VARCHAR2);
138
139 --
140 -- Allow workitem workflow to register a FA through eq
141 --
142 PROCEDURE Add_FA_ToQ(
143 p_order_id IN NUMBER,
144 p_wi_instance_id IN NUMBER,
145 p_fa_instance_id IN number,
146 p_wf_item_type in VARCHAR2 ,
147 p_wf_item_key in VARCHAR2,
148 p_priority in number default 100,
149 p_return_code OUT NOCOPY NUMBER,
150 p_error_description OUT NOCOPY VARCHAR2);
151
152 /************** Commented out as this code was being executed by old C dequeuers
153 --
154 -- Used by API to start FA workflow
155 -- through dequeue
156 --
157 PROCEDURE Start_FA_Workflow;
158
159 ****************/
160
161 PROCEDURE Start_FA_Workflow (p_message_wait_timeout IN NUMBER DEFAULT 1,
162 p_correlation_id IN VARCHAR2,
163 x_message_key OUT NOCOPY VARCHAR2,
164 x_queue_timed_out OUT NOCOPY VARCHAR2);
165
166 --
167 -- Allow WF to pass the pipe to next WF through enqueue
168 --
169 PROCEDURE HANDOVER_Channel(
170 p_channel_name IN VARCHAR2,
171 p_fe_name IN VARCHAR2,
172 p_wf_item_type IN VARCHAR2,
173 p_wf_item_key IN VARCHAR2,
174 p_wf_activity IN Varchar2 Default NULL,
175 p_order_id IN number,
176 p_wi_instance_id IN number,
177 p_fa_instance_id IN number,
178 p_return_code OUT NOCOPY NUMBER,
179 p_error_description OUT NOCOPY VARCHAR2);
180
181
182 /************** Commented out as this code was being executed by old C dequeuers
183 --
184 -- Used by DB job to resume a WF with the new pipe
185 -- through dequeue
186 --
187
188 PROCEDURE Resume_Next_WF;
189
190 ****************/
191
192 PROCEDURE Resume_Next_WF (p_message_wait_timeout IN NUMBER DEFAULT 1,
193 p_correlation_id IN VARCHAR2,
194 x_message_key OUT NOCOPY VARCHAR2,
195 x_queue_timed_out OUT NOCOPY VARCHAR2);
196
197 PROCEDURE SDP_RESUME_WF
198 (p_pipe_name IN VARCHAR2
199 ,p_wf_item_type IN VARCHAR2
200 ,p_wf_item_key IN VARCHAR2
201 ,p_wf_activity IN VARCHAR2
202 ,p_enq_time IN DATE
203 ,P_RETURN_CODE OUT NOCOPY NUMBER
204 ,P_ERROR_DESCRIPTION OUT NOCOPY VARCHAR2
205 );
206
207 --
208 -- Allow workflow to register a notification event through eq
209 --
210 PROCEDURE Resume_WF_EQ(
211 p_event_id number,
212 p_wf_item_type VARCHAR2 ,
213 p_wf_item_key VARCHAR2,
214 p_wf_activity VARCHAR2,
215 p_callback VARCHAR2,
216 p_priority number default 100,
217 p_return_code OUT NOCOPY NUMBER,
218 p_error_description OUT NOCOPY VARCHAR2);
219 --
220 -- Used by API to notify the parent workflow to resume
221 -- through dequeue
222 --
223 PROCEDURE Resume_Parent_Workflow;
224
225 --
226 -- Get the current state of the given queue
227 --
228 FUNCTION Get_Queue_State(
229 p_queue_name IN VARCHAR2)
230 RETURN VARCHAR2;
231
232 --
233 -- Suspend a given queue, if queue_name is not supplied,
234 -- all queues will be disabled
235 --
236 PROCEDURE DISABLE_SDP_AQ(
237 p_queue_name IN VARCHAR2,
238 p_return_code OUT NOCOPY NUMBER,
239 p_error_description OUT NOCOPY VARCHAR2);
240
241 --
242 -- Enable a given queue, if queue_name is not supplied,
243 -- all queues will be enabled
244 --
245 PROCEDURE ENABLE_SDP_AQ(
246 p_queue_name IN VARCHAR2,
247 p_return_code OUT NOCOPY NUMBER,
248 p_error_description OUT NOCOPY VARCHAR2);
249
250 --
251 -- Shut down a given SFM queue, if queue_name is not supplied,
252 -- all queues will be shutdown
253 --
254 PROCEDURE SHUTDOWN_SDP_AQ(
255 p_queue_name IN VARCHAR2,
256 p_return_code OUT NOCOPY NUMBER,
257 p_error_description OUT NOCOPY VARCHAR2);
258
259 --
260 -- Log the dequeue exceptions for the dequeuer
261 --
262 PROCEDURE Handle_DQ_Exception(
263 p_MESSAGE_ID IN RAW,
264 p_WF_ITEM_TYPE IN VARCHAR2 DEFAULT NULL,
265 p_WF_ITEM_KEY IN VARCHAR2 DEFAULT NULL,
266 p_CALLER_NAME IN VARCHAR2,
267 p_CALLBACK_TEXT IN VARCHAR2 DEFAULT NULL,
268 p_Q_NAME IN VARCHAR2,
269 p_ERROR_DESCRIPTION IN VARCHAR2,
270 p_ERROR_TIME IN DATE DEFAULT sysdate );
271
272
273 PROCEDURE InterfaceWithOSS (
274 p_OrderID IN NUMBER,
275 p_ObjectType IN VARCHAR2,
276 p_ReturnCode OUT NOCOPY NUMBER,
277 p_ErrorDescription OUT NOCOPY VARCHAR2);
278
279 Procedure LogCommandAuditTrail (FAInstanceID in number,
280 FeName in varchar2,
281 FeType in varchar2,
282 SW_Generic in varchar2,
283 CommandSent in varchar2,
284 SentDate in DATE,
285 Response in varchar2,
286 ResponseLong in CLOB,
287 RespDate in DATE,
288 ProcName in varchar2);
289
290 Procedure LogCommandAuditTrail (FAInstanceID in number,
291 FeName in varchar2,
292 FeType in varchar2,
293 SW_Generic in varchar2,
294 CommandSent in varchar2,
295 SentDate in DATE,
296 Response in varchar2,
297 RespDate in DATE,
298 ProcName in varchar2);
299
300
301 PROCEDURE DQ_XNP_EVT_Q( p_return_code OUT NOCOPY NUMBER,
302 p_error_description OUT NOCOPY VARCHAR2) ;
303
304 PROCEDURE DQ_XNP_IN_MSG_Q( p_return_code OUT NOCOPY NUMBER,
305 p_error_description OUT NOCOPY VARCHAR2) ;
306
307 PROCEDURE DQ_XNP_IN_TMR_Q( p_return_code OUT NOCOPY NUMBER,
308 p_error_description OUT NOCOPY VARCHAR2) ;
309
310 PROCEDURE DQ_XDP_ORDER_PROC_QUEUE( p_return_code OUT NOCOPY NUMBER,
311 p_error_description OUT NOCOPY VARCHAR2) ;
312
313 PROCEDURE DQ_XDP_FA_QUEUE( p_return_code OUT NOCOPY NUMBER,
314 p_error_description OUT NOCOPY VARCHAR2) ;
315
316 PROCEDURE DQ_XDP_WF_CHANNEL_Q( p_return_code OUT NOCOPY NUMBER,
317 p_error_description OUT NOCOPY VARCHAR2) ;
318
319 PROCEDURE DQ_XDP_WORKITEM_QUEUE( p_return_code OUT NOCOPY NUMBER,
320 p_error_description OUT NOCOPY VARCHAR2) ;
321
322 PROCEDURE DQ_EXCP_REENQ( p_return_code OUT NOCOPY NUMBER,
323 p_error_description OUT NOCOPY VARCHAR2) ;
324
325 PROCEDURE DQ_XDP_ORDER_PROC_REENQ( p_message_wait_timeout IN NUMBER DEFAULT 1,
326 p_correlation_id IN VARCHAR2 );
327
328 PROCEDURE DQ_XDP_FA_REENQ( p_message_wait_timeout IN NUMBER DEFAULT 1,
329 p_correlation_id IN VARCHAR2 );
330
331 PROCEDURE DQ_XDP_WORKITEM_REENQ( p_message_wait_timeout IN NUMBER DEFAULT 1,
332 p_correlation_id IN VARCHAR2 );
333
334 PROCEDURE DQ_XDP_WF_CHANNEL_REENQ( p_message_wait_timeout IN NUMBER DEFAULT 1,
335 p_correlation_id IN VARCHAR2 );
336
337 PROCEDURE DQ_XNP_IN_MSG_REENQ( p_message_wait_timeout IN NUMBER DEFAULT 1 );
338
339 PROCEDURE DQ_XNP_IN_EVT_REENQ( p_message_wait_timeout IN NUMBER DEFAULT 1 );
340
341 PROCEDURE DQ_XNP_IN_TMR_REENQ( p_message_wait_timeout IN NUMBER DEFAULT 1 );
342
343 PROCEDURE DQ_XNP_OUT_MSG_REENQ( p_message_wait_timeout IN NUMBER DEFAULT 1 );
344
345 PROCEDURE ReENQUEUE( p_msg_header IN XNP_MESSAGE.MSG_HEADER_REC_TYPE
346 ,p_body_text IN VARCHAR2
347 ,p_queue_name IN VARCHAR2
348 ,p_correlation_id IN VARCHAR2 DEFAULT NULL
349 ,p_priority IN INTEGER DEFAULT 1
350 ,p_commit_mode IN NUMBER DEFAULT XNP_MESSAGE.C_ON_COMMIT
351 ,p_delay IN NUMBER DEFAULT DBMS_AQ.NO_DELAY
352 );
353
354 PROCEDURE SET_CONTEXT( object_id IN NUMBER
355 ,object_key IN VARCHAR2
356 );
357
358 PROCEDURE DQ_XDP_WF_CHANNEL_REPROCESS;
359
360 END XDP_AQ_UTILITIES;