DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKE_PRINT_CONTRACT_WF

Source


1 PACKAGE BODY OKE_PRINT_CONTRACT_WF AS
2 /* $Header: OKEWCPPB.pls 120.1 2005/06/24 10:36:29 ausmani noship $ */
3 
4 --
5 -- Global Variables
6 --
7 EventName    VARCHAR2(240)  := NULL;
8 l_Item_Key   VARCHAR2(1000) := 'DEFAULT';
9 --
10 -- Private Procedures and Functions
11 --
12 PROCEDURE GetEventName
13 ( ItemType            IN      VARCHAR2
14 , ItemKey             IN      VARCHAR2
15 ) IS
16 
17 BEGIN
18 
19   EventName := WF_ENGINE.GetItemAttrText
20                ( ItemType => ItemType
21                , ItemKey  => ItemKey
22                , AName    => 'ECX_EVENT_NAME' );
23 
24 END GetEventName;
25 
26 PROCEDURE Raise_Business_Event
27 ( P_Header_ID             IN            VARCHAR2
28 , P_Major_Version         IN            NUMBER
29 , X_Item_Key              OUT NOCOPY    VARCHAR2
30 ) IS
31 
32   l_xmldocument        varchar2(30000);
33   l_eventdata          clob;
34   --l_message            varchar2(10);
35   MapCode              VARCHAR2(30);
36   TxnType              VARCHAR2(30) := 'ECX';
37   EventName            VARCHAR2(80) := 'oracle.apps.oke.documents.contract.print';
38   ParamList            wf_parameter_list_t := wf_parameter_list_t();
39 
40   l_latest_version     NUMBER; -- The latest version number of the contract
41   l_org_id             NUMBER; -- for MOAC
42 
43 
44   cursor c_version is
45     select max(major_version)
46     from oke_k_headers_hv
47     where k_header_id =P_Header_id;
48 
49   cursor c_org is
50     select authoring_org_id
51     from oke_k_headers_v
52     where k_header_id =P_Header_id;
53 
54 
55 BEGIN
56 
57   OPEN c_version;
58   FETCH c_version INTO l_latest_version;
59   CLOSE c_version;
60 
61   OPEN c_org;
62   FETCH c_org INTO l_org_id;
63   CLOSE c_org;
64 
65   IF P_Major_Version<=l_latest_version THEN
66       MapCode     :='OKE_K_PRINT_H_OUT';
67   ELSE
68       MapCode     :='OKE_K_PRINT_OUT';
69   END IF;
70 
71 
72   --
73   -- Building Parameter List
74   --
75   wf_event.AddParameterToList( p_name => 'ECX_MAP_CODE'
76                              , p_value => MapCode
77                              , p_parameterList => ParamList );
78 
79   wf_event.AddParameterToList( p_name => 'ECX_TRANSACTION_TYPE'
80                              , p_value => TxnType
81                              , p_parameterList => ParamList );
82 
83   wf_event.AddParameterToList( p_name => 'ECX_DOCUMENT_ID'
84                              , p_value => P_Header_id
85                              , p_parameterList => ParamList );
86 
87   wf_event.AddParameterToList( p_name => 'ECX_PARAMETER1'
88                              , p_value => P_Header_ID
89                              , p_parameterList => ParamList );
90 
91   wf_event.AddParameterToList( p_name => 'ECX_PARAMETER2'
92                              , p_value => P_Major_Version
93                              , p_parameterList => ParamList );
94 
95   wf_event.AddParameterToList( p_name => 'ORG_ID'
96                              , p_value => l_org_id
97                              , p_parameterList => ParamList );
98 
99 
100   IF ( OKE_UTILS.Debug_Mode = 'Y' ) THEN
101     wf_event.AddParameterToList( p_name => 'ECX_DEBUG_LEVEL'
102                                , p_value => '0'
103                                , p_parameterList => ParamList );
104   END IF;
105 
106   --
107   -- Raise Event
108   --
109 
110   wf_event.Raise( p_event_name => EventName
111                     , p_event_key  => to_char(sysdate , 'YYYYMMDD HH24MISS')
112                     , p_parameters => ParamList );
113 
114   ParamList.DELETE;
115 
116   X_Item_Key := l_Item_Key;
117 
118 
119   commit;
120 
121   exception
122   when others then
123     null;
124 
125 END;
126 
127 --
128 -- Public Procedures
129 --
130 PROCEDURE Initialize
131 ( ItemType            IN      VARCHAR2
132 , ItemKey             IN      VARCHAR2
133 , ActID               IN      NUMBER
134 , FuncMode            IN      VARCHAR2
135 , ResultOut           OUT NOCOPY     VARCHAR2
136 ) IS
137 
138 
139 BEGIN
140 
141   IF ( FuncMode = 'RUN' ) THEN
142     --
143     -- Getting the event name from the Workflow attribute
144     --
145     GetEventName( ItemType , ItemKey );
146 
147     --
148     -- The URL should be generic for all types of documents.
149     -- Perform this action before form specific initializations
150     -- so it is possible to override the result on a form-by-form
151     -- basis.
152     --
153     WF_ENGINE.SetItemAttrText
154     ( ItemType => ItemType
155     , ItemKey  => ItemKey
156     , AName    => 'DOCUMENT_URL'
157     , AValue   => wfa_html.base_url ||
158                   '/Wf_Event_Html.EventDataContents?' ||
159                   'P_EventAttribute=ECX_EVENT_MESSAGE&' ||
160                   'P_ItemType=' || ItemType || '&' ||
161                   'P_ItemKey='  || replace(ItemKey , ' ' , '+')
162     );
163 
164 
165     l_Item_Key := 'P_ItemKey=' || replace(ItemKey , ' ' , '+');
166 
167 
168 
169     ResultOut := 'COMPLETE:';
170     RETURN;
171 
172   END IF;
173 
174   IF ( FuncMode = 'CANCEL' ) THEN
175     ResultOut := '';
176     RETURN;
177   END IF;
178 
179   IF ( FuncMode = 'TIMEOUT' ) THEN
180     ResultOut := '';
181     RETURN;
182   END IF;
183 
184   EXCEPTION
185    WHEN OTHERS THEN
186     ResultOut := 'ERROR:';
187     WF_Core.Context
188             ( 'OKE_PRINT_CONTRACT_WF'
189             , 'INITIALIZE'
190             , ItemType
191             , ItemKey
192             , to_char(ActID)
193             , FuncMode
194             , ResultOut );
195     RAISE;
196 
197 END Initialize;
198 
199 FUNCTION getEventData
200 ( p_itemType                 IN            VARCHAR2
201 , p_itemKey                  IN            VARCHAR2
202 )RETURN CLOB IS
203 
204 l_event_t            wf_event_t;
205 l_eventdata          clob;
206 
207 BEGIN
208 	wf_event_t.Initialize(l_event_t);
209 
210 	l_event_t :=wf_engine.GetItemAttrEvent(
211                                               itemType          => p_itemType,
212                                               itemKey           => p_itemKey,
213                                               name              =>'ECX_EVENT_MESSAGE');
214         l_eventData :=l_event_t.GetEventData();
215         return l_eventData;
216 
217 END getEventData;
218 
219 END OKE_PRINT_CONTRACT_WF;