DBA Data[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;