DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_WF_PVT

Source


1 PACKAGE BODY OKL_WF_PVT AS
2 /* $Header: OKLRCWFB.pls 120.4 2005/10/30 04:02:27 appldev noship $ */
3 
4 
5   G_WF_ITM_USER_ID CONSTANT VARCHAR2(15) := 'USER_ID';
6   G_WF_ITM_EVENT_DATE CONSTANT VARCHAR2(15) := 'EVENT_DATE';
7   G_WF_ITM_EVENT_NAME CONSTANT VARCHAR2(15) := 'EVENT_NAME';
8 
9 
10   FUNCTION check_batch_process
11   RETURN BOOLEAN
12   IS
13    l_request_id NUMBER;
14    l_ret_value BOOLEAN := FALSE;
15   BEGIN
16   	   -- Check for Request ID and return true if found
17       SELECT Fnd_Global.CONC_REQUEST_ID
18       INTO   l_request_id
19       FROM DUAL;
20 
21 	  IF (l_request_id <> -1) THEN
22 	  	  l_ret_value := TRUE;
23 	  END IF;
24 
25 	  RETURN l_ret_value;
26   END check_batch_process;
27 
28   FUNCTION check_batch_process_enabled
29   RETURN BOOLEAN
30   IS
31    l_profile_value VARCHAR2(1);
32    l_ret_value BOOLEAN := FALSE;
33   BEGIN
34 
35 	   l_profile_value := fnd_profile.value('OKL_ENABLE_EVENTS_FOR_BATCH');
36 
37 	   IF l_profile_value = 'Y' THEN
38 	    l_ret_value := TRUE;
39 	   END IF;
40 
41 	   RETURN l_ret_value;
42   END check_batch_process_enabled;
43 
44   ---------------------------------------------------------------------------
45   -- FUNCTION get_event_key
46   ---------------------------------------------------------------------------
47   FUNCTION get_event_key RETURN VARCHAR2 IS
48     l_newvalue NUMBER := 1;
49   BEGIN
50 	SELECT OKL_WF_ITEM_S.NEXTVAL INTO	l_newvalue FROM dual;
51     RETURN(TO_CHAR(l_newvalue));
52   END get_event_key;
53 
54   PROCEDURE raise_event (p_api_version    IN  NUMBER,
55                          p_init_msg_list  IN  VARCHAR2 DEFAULT OKL_API.G_FALSE,
56                          x_return_status  OUT NOCOPY VARCHAR2,
57                          x_msg_count      OUT NOCOPY NUMBER,
58                          x_msg_data       OUT NOCOPY VARCHAR2,
59                          p_event_name     IN VARCHAR2,
60                          p_event_key     IN VARCHAR2 DEFAULT NULL,
61                          p_event_data IN clob DEFAULT NULL,
62                          p_parameters IN wf_parameter_list_t DEFAULT NULL,
63                          p_send_date  IN DATE DEFAULT NULL,
64                          p_include_user_params IN VARCHAR2 DEFAULT OKL_API.G_TRUE)
65   IS
66 
67     l_api_name                        CONSTANT VARCHAR2(30)  := 'raise_event';
68     l_api_version      CONSTANT NUMBER       := 1.0;
69 	l_return_status VARCHAR2(1) := G_RET_STS_SUCCESS;
70 
71     l_raise_event BOOLEAN := FALSE;
72     l_parameter_list           wf_parameter_list_t := p_parameters;
73 	l_event_key VARCHAR2(1000) := p_event_key;
74 
75   BEGIN
76 
77     l_return_status := Okl_Api.START_ACTIVITY(p_api_name       => l_api_name,
78                                               p_pkg_name	   => G_PKG_NAME,
79                                               p_init_msg_list  => p_init_msg_list,
80                                               l_api_version	   => l_api_version,
81                                               p_api_version	   => p_api_version,
82                                               p_api_type	   => G_API_TYPE,
83                                               x_return_status  => l_return_status);
84 
85     IF (l_return_status = G_RET_STS_UNEXP_ERROR) THEN
86       RAISE G_EXCEPTION_UNEXPECTED_ERROR;
87     ELSIF (l_return_status = G_RET_STS_ERROR) THEN
88       RAISE G_EXCEPTION_ERROR;
89     END IF;
90 
91     l_raise_event := TRUE;
92 
93     	IF check_batch_process THEN
94     		IF check_batch_process_enabled THEN
95     		   l_raise_event := TRUE;
96 	    	ELSE
97     		  l_raise_event := FALSE;
98     		END IF;
99     	END IF;
100 
101     	IF l_raise_event  THEN
102     		IF (p_include_user_params = OKL_API.G_TRUE) THEN
103 
104 			  Wf_Event.AddParameterToList(G_WF_ITM_USER_ID,FND_GLOBAL.USER_ID,l_parameter_list);
105 			  Wf_Event.AddParameterToList(G_WF_ITM_EVENT_DATE,fnd_date.date_to_canonical(SYSDATE),l_parameter_list);
106                           Wf_Event.AddParameterToList(G_WF_ITM_EVENT_NAME,p_event_name,l_parameter_list);
107 
108     		 END IF;
109 
110 			 IF l_event_key IS NULL THEN
111                    l_event_key := get_event_key;
112 			 END IF;
113 
114 		     -- Raise Event
115 		     Wf_Event.RAISE(p_event_name => p_event_name,
116                             p_event_key => l_event_key,
117 		                    p_parameters => l_parameter_list);
118 
119 		     l_parameter_list.DELETE;
120 
121     	END IF;
122 
123     Okl_Api.END_ACTIVITY(x_msg_count  => x_msg_count
124                         ,x_msg_data   => x_msg_data);
125 
126     x_return_status := l_return_status;
127 
128 
129   EXCEPTION
130     WHEN G_EXCEPTION_ERROR THEN
131 
132       x_return_status := Okl_Api.HANDLE_EXCEPTIONS(p_api_name	=> l_api_name,
133                                                    p_pkg_name	=> G_PKG_NAME,
134                                                    p_exc_name   => G_EXC_NAME_ERROR,
135                                                    x_msg_count	=> x_msg_count,
136                                                    x_msg_data	=> x_msg_data,
137                                                    p_api_type	=> G_API_TYPE);
138 
139     WHEN G_EXCEPTION_UNEXPECTED_ERROR THEN
140 
141       x_return_status := Okl_Api.HANDLE_EXCEPTIONS(p_api_name	=> l_api_name,
142                                                    p_pkg_name	=> G_PKG_NAME,
143                                                    p_exc_name   => G_EXC_NAME_UNEXP_ERROR,
144                                                    x_msg_count	=> x_msg_count,
145                                                    x_msg_data	=> x_msg_data,
146                                                    p_api_type	=> G_API_TYPE);
147     WHEN OTHERS THEN
148 
149       x_return_status := Okl_Api.HANDLE_EXCEPTIONS(p_api_name	=> l_api_name,
150                                                    p_pkg_name	=> G_PKG_NAME,
151                                                    p_exc_name   => G_EXC_NAME_OTHERS,
152                                                    x_msg_count	=> x_msg_count,
153                                                    x_msg_data	=> x_msg_data,
154                                                    p_api_type	=> G_API_TYPE);
155 
156   END raise_event;
157 
158 
159 
160 END OKL_WF_PVT;