[Home] [Help]
PACKAGE BODY: APPS.PO_BUSINESSEVENT_PVT
Source
1 PACKAGE BODY PO_BUSINESSEVENT_PVT AS
2 /* $Header: POXVRBEB.pls 120.1 2007/02/15 20:44:17 dedelgad ship $ */
3
4 -- <R12 OTM INTEGRATION START>
5 -------------------------------------------------------------------------------
6 --Start of Comments
7 --Name:
8 -- raise_event
9 --Pre-reqs:
10 -- None.
11 --Modifies:
12 -- None.
13 --Locks:
14 -- None.
15 --Function:
16 -- Generic private procedure to raise PO business event.
17 --Parameters:
18 --IN:
19 --p_api_version
20 -- Specifies API version.
21 --p_event_name
22 -- Business Event name
23 --p_param_list
24 -- The list of parameters that should be attached to the business event.
25 --p_deferred
26 -- Determines if we should defer the event or not
27 --OUT:
28 --x_return_status
29 -- Indicates API return status as 'S', 'E' or 'U'.
30 --End of Comments
31 -------------------------------------------------------------------------------
32 PROCEDURE raise_event (
33 p_api_version IN NUMBER
34 , p_event_name IN VARCHAR2
35 , p_param_list IN PO_EVENT_PARAMS_TYPE
36 , p_deferred IN BOOLEAN DEFAULT FALSE
37 , x_return_status IN OUT NOCOPY VARCHAR2
38 )
39 IS
40
41 l_package_name CONSTANT VARCHAR2(30) := 'PO_BUSINESS_EVENT';
42 l_api_name CONSTANT VARCHAR2(30) := 'raise_event';
43 l_api_version CONSTANT NUMBER := 1.0;
44
45 l_param_list PO_EVENT_PARAMS_TYPE;
46 l_wf_param_list WF_PARAMETER_LIST_T;
47 l_event_key VARCHAR2(240);
48
49 BEGIN
50 -- Initialize API return status to success
51 x_return_status := FND_API.g_ret_sts_success;
52
53 -- Standard Start of API savepoint
54 SAVEPOINT raise_event;
55
56 -- Standard call to check for call compatibility.
57 IF (NOT FND_API.compatible_api_call (
58 p_current_version_number => l_api_version
59 , p_caller_version_number => p_api_version
60 , p_api_name => l_api_name
61 , p_pkg_name => l_package_name))
62 THEN
63 RAISE FND_API.g_exc_unexpected_error;
64 END IF;
65
66 -- calculate the event key
67 l_event_key := 'oracle.apps.po.event.' || p_event_name || '_'
68 || TO_CHAR(SYSTIMESTAMP, 'HH24:MI:SS:FF');
69
70 l_param_list := p_param_list;
71
72 l_param_list.add_param (
73 p_param_name => 'Q_CORRELATION_ID'
74 , p_param_value => p_event_name );
75
76 -- get the WF param list
77 l_wf_param_list := l_param_list.get_wf_parameter_list();
78
79 -- defer event if necessary
80 IF (p_deferred) THEN
81 WF_EVENT.setdispatchmode('ASYNC');
82 END IF;
83
84 -- raise event
85 WF_EVENT.raise (
86 p_event_name => p_event_name
87 , p_event_key => l_event_key
88 , p_parameters => l_wf_param_list);
89
90 EXCEPTION
91 WHEN OTHERS THEN
92 x_return_status := FND_API.g_ret_sts_error;
93 ROLLBACK TO raise_event;
94 FND_MSG_PUB.add_exc_msg (
95 p_pkg_name => l_package_name
96 , p_procedure_name => l_api_name
97 , p_error_text => 'Failed to raise business event');
98 END raise_event;
99
100 -- <R12 OTM INTEGRATION END>
101
102 -------------------------------------------------------------------------------
103 --Start of Comments
104 --Name:
105 -- raise_event
106 --Pre-reqs:
107 -- None.
108 --Modifies:
109 -- None.
110 --Locks:
111 -- None.
112 --Function:
113 -- Generic private procedure to rasie PO business event.
114 --Parameters:
115 --IN:
116 --p_api_version
117 -- Specifies API version.
118 --p_event_name
119 -- Business Event name
120 --p_entity_name
121 -- Business Event entity name.
122 --p_entity_id
123 -- Entity primary key.
124 --OUT:
125 --x_return_status
126 -- Indicates API return status as 'S', 'E' or 'U'.
127 --x_msg_count:
128 -- Indicates the number of messages.
129 --x_msg_data:
130 -- Message body.
131 --Testing:
132 -- Need to integrate FTE to implement the testing.
133 --End of Comments
134 -------------------------------------------------------------------------------
135
136 PROCEDURE raise_event
137 (
138 p_api_version IN NUMBER,
139 x_return_status IN OUT NOCOPY VARCHAR2,
140 x_msg_count IN OUT NOCOPY NUMBER,
141 x_msg_data IN OUT NOCOPY VARCHAR2,
142 p_event_name IN VARCHAR2,
143 p_entity_name IN VARCHAR2,
144 p_entity_id IN NUMBER
145 ) IS
146
147 l_org_id NUMBER;
148 l_user_id NUMBER;
149 l_resp_id NUMBER;
150 l_resp_appl_id NUMBER;
151
152 l_param_list PO_EVENT_PARAMS_TYPE; --<R12 OTM INTEGRATION>
153
154 BEGIN
155 -- Get the db session context
156 l_org_id := PO_MOAC_UTILS_PVT.get_current_org_id ; --<R12 MOAC>
157 l_user_id := fnd_profile.value( NAME => 'USER_ID');
158 l_resp_id := fnd_profile.value( NAME => 'RESP_ID');
159 l_resp_appl_id := fnd_profile.value( NAME => 'RESP_APPL_ID');
160
161 --<R12 OTM INTEGRATION START> Modified this procedure to call the more generic signature.
162
163 -- construct parameter list
164 l_param_list := PO_EVENT_PARAMS_TYPE.new_instance();
165
166 l_param_list.add_param (
167 p_param_name => 'org_id'
168 , p_param_value => l_org_id);
169
170 l_param_list.add_param (
171 p_param_name => 'user_id'
172 , p_param_value => l_user_id);
173
174 l_param_list.add_param (
175 p_param_name => 'resp_id'
176 , p_param_value => l_resp_id);
177
178 l_param_list.add_param (
179 p_param_name => 'resp_appl_id'
180 , p_param_value => l_resp_appl_id);
181
182 l_param_list.add_param (
183 p_param_name => 'entity_name'
184 , p_param_value => p_entity_name);
185
186 l_param_list.add_param (
187 p_param_name => 'entity_id'
188 , p_param_value => p_entity_id);
189
190 -- raise event
191 PO_BUSINESSEVENT_PVT.raise_event (
192 p_api_version => p_api_version
193 , p_event_name => p_event_name
194 , p_param_list => l_param_list
195 , p_deferred => FALSE
196 , x_return_status => x_return_status);
197
198 --<R12 OTM INTEGRATION END>
199
200 END raise_event;
201
202 END PO_BUSINESSEVENT_PVT;