[Home] [Help]
PACKAGE BODY: APPS.WF_OAM_UTIL
Source
1 package body WF_OAM_UTIL as
2 /* $Header: WFOAMUTB.pls 120.3 2005/07/02 03:16:33 appldev noship $ */
3
4 --
5 -- getWfEventTParameters
6 -- To convert the the parameter list in WF_EVENT_T to
7 -- string
8
9 FUNCTION getWfEventTParameters(l_paramlist in wf_parameter_list_t)
10 RETURN VARCHAR2
11 IS
12 l_parmlist_t wf_parameter_list_t;
13 l_parameters varchar2(4000);
14 i binary_integer;
15 begin
16 l_parmlist_t := l_paramlist;
17 if (l_parmlist_t is not null) then
18 i := l_parmlist_t.FIRST;
19 while (i <= l_parmlist_t.LAST) loop
20 l_parameters := l_parameters||l_parmlist_t(i).getName()||'='||
21 l_parmlist_t(i).getValue()||' ';
22 i := l_parmlist_t.NEXT(i);
23 end loop;
24 end if;
25 return l_parameters;
26 end getWfEventTParameters;
27
28 --
29 -- getWfEventT
30 -- Function wrapper around wf_event_ojmstext_qh.deserialize
31 --
32
33 FUNCTION getWfEventT(l_aq_jms_text in sys.aq$_jms_text_message)
34 RETURN WF_EVENT_T
35 IS
36 l_wf_event_t wf_event_t;
37 l_jms sys.aq$_jms_text_message;
38 begin
39 l_jms := l_aq_jms_text;
40 wf_event_ojmstext_qh.deserialize(l_jms,l_wf_event_t);
41 return l_wf_event_t;
42 end getWfEventT;
43
44 --
45 -- getViewXMLURL
46 -- To get the URL for viewing XML given item type, item key and
47 -- event attribute
48 FUNCTION getViewXMLURL(p_eventattribute in varchar2,
49 p_itemtype in varchar2,
50 p_itemkey in varchar2,
51 p_mimetype in varchar2 default 'text/xml')
52 RETURN VARCHAR2
53 IS
54 l_url varchar2(4000);
55 l_fnctname varchar2(500);
56 l_params varchar2(1000);
57 begin
58
59 l_fnctname := 'OAM_WF_VIEW_XML';
60
61 l_params := 'eventattr='||p_eventattribute||
62 '&'||'itemtype='||p_itemtype||
63 '&'||'itemkey='||p_itemkey||
64 '&'||'mime='||p_mimetype||
65 '&'||'source='||'ITEMDATA';
66
67 l_url := fnd_run_function.get_run_function_url( p_function_name => l_fnctname,
68 p_resp_appl => null,
69 p_resp_key => null,
70 p_security_group_key => null,
71 p_parameters => l_params);
72
73 return l_url;
74 end getViewXMLURL;
75
76 --
77 -- getViewXMLURL
78 -- To get the URL for viewing XML given message id and queue table
79 FUNCTION getViewXMLURL(p_message_id in varchar2,
80 p_queue_table in varchar2,
81 p_mimetype in varchar2 default 'text/xml')
82 RETURN VARCHAR2
83 IS
84 l_url varchar2(4000);
85 l_fnctname varchar2(500);
86 l_qtable varchar2(30);
87 l_msgid varchar2(500);
88 l_type varchar2(30);
89 l_params varchar2(1000);
90 l_owner varchar2(30);
91 l_queue_table varchar2(30);
92 l_dummy number;
93
94 begin
95 l_fnctname := 'OAM_WF_VIEW_XML';
96
97 -- Validate the Queue Table
98 if (instr(p_queue_table, '.', 1) > 0) then
99 l_owner := substr(p_queue_table, 1, instr(p_queue_table, '.', 1)-1);
100 l_queue_table := substr(p_queue_table, instr(p_queue_table, '.', 1)+1);
101 else
102 l_owner := Wf_Core.Translate('WF_SCHEMA');
103 l_queue_table := p_queue_table;
104 end if;
105
106 begin
107 SELECT 1
108 INTO l_dummy
109 FROM all_queue_tables
110 WHERE owner = l_owner
111 AND queue_table = l_queue_table
112 AND rownum = 1;
113 exception
114 when no_data_found then
115 -- mostly no_data_found error
116 Wf_Core.Token('OWNER', l_owner);
117 Wf_Core.Token('QUEUE', l_queue_table);
118 Wf_Core.Raise('WFE_QUEUE_NOTEXIST');
119 end;
120
121 l_params := 'id='||p_message_id||
122 '&'||'qtable='||p_queue_table||
123 '&'||'mime='||p_mimetype||
124 '&'||'source='||'MSGDATA';
125
126 l_url := fnd_run_function.get_run_function_url( p_function_name => l_fnctname,
127 p_resp_appl => null,
128 p_resp_key => null,
129 p_security_group_key => null,
130 p_parameters => l_params);
131
132 return l_url;
133 end getViewXMLURL;
134
135 --
136 --getEventData
137 -- To get the CLOB Eventdata given item type, item key and
138 -- event attribute
139 FUNCTION getEventData(p_eventattribute in varchar2,
140 p_itemtype in varchar2,
141 p_itemkey in varchar2)
142 RETURN clob
143 IS
144 l_event_t wf_event_t;
145 l_eventdata clob;
146 begin
147
148 l_event_t := wf_engine.GetItemAttrEvent(
149 itemtype => P_ItemType,
150 itemkey => P_ItemKey,
151 name => P_EventAttribute);
152 l_eventdata := l_event_t.GetEventData();
153
154 return l_eventdata;
155 end getEventData;
156
157 --
158 --getEventData
159 -- To get the CLOB Eventdata given message id and queue table
160 FUNCTION getEventData(p_message_id in varchar2,
161 p_queue_table in varchar2)
162 RETURN clob
163 IS
164 TYPE queue_contents_t IS REF CURSOR;
165 l_qcontents queue_contents_t;
166 l_sqlstmt varchar2(32000);
167 l_message wf_event_t;
168 l_eventdata clob;
169 begin
170
171 -- Get the Clob
172 l_sqlstmt := 'SELECT user_data FROM '||p_queue_table
173 ||' WHERE MSGID = :b';
174
175 OPEN l_qcontents FOR l_sqlstmt USING p_message_id;
176 LOOP
177 FETCH l_qcontents INTO l_message;
178 l_eventdata := l_message.GetEventData();
179 EXIT WHEN l_qcontents%NOTFOUND;
180
181 END LOOP;
182
183 return l_eventdata;
184 end getEventData;
185
186 END WF_OAM_UTIL;