DBA Data[Home] [Help]

PACKAGE BODY: APPS.CZ_CONTRACTS_API_GRP

Source


1 PACKAGE BODY CZ_contracts_api_grp AS
2 /*	$Header: czgconab.pls 120.1 2008/04/03 14:22:54 skudryav ship $		*/
3 --------------------------------------------------------------------------------
4 
5 G_INCOMPATIBLE_API   EXCEPTION;
6 G_PKG_NAME 	CONSTANT VARCHAR2(30) := 'cz_contracts_api_grp';
7 
8 --------------------------------------------------------------------------------
9 FUNCTION rp_folder_exists (p_api_version    IN NUMBER,
10                            p_encl_folder_id IN NUMBER,
11                            p_rp_folder_id   IN NUMBER) RETURN BOOLEAN
12 IS
13  x_folder_exists BOOLEAN := FALSE;
14 BEGIN
15   x_folder_exists:=cz_modeloperations_pub.rp_folder_exists(p_api_version
16                                                           ,p_encl_folder_id
17                                                           ,p_rp_folder_id);
18   RETURN x_folder_exists;
19 END rp_folder_exists;
20 --------------------------------------------------------------------------------
21 PROCEDURE create_rp_folder(p_api_version          IN  NUMBER
22                           ,p_encl_folder_id       IN  CZ_RP_ENTRIES.OBJECT_ID%TYPE
23                           ,p_new_folder_name      IN  CZ_RP_ENTRIES.NAME%TYPE
24                           ,p_folder_desc          IN  CZ_RP_ENTRIES.DESCRIPTION%TYPE
25                           ,p_folder_notes         IN  CZ_RP_ENTRIES.NOTES%TYPE
26                           ,x_new_folder_id        OUT NOCOPY  CZ_RP_ENTRIES.OBJECT_ID%TYPE
27                           ,x_return_status        OUT NOCOPY  VARCHAR2
28                           ,x_msg_count            OUT NOCOPY  NUMBER
29                           ,x_msg_data             OUT NOCOPY  VARCHAR2
30                           )
31 IS
32 BEGIN
33  cz_modeloperations_pub.create_rp_folder(p_api_version
34                                         ,p_encl_folder_id
35                                         ,p_new_folder_name
36                                         ,p_folder_desc
37                                         ,p_folder_notes
38                                         ,x_new_folder_id
39                                         ,x_return_status
40                                         ,x_msg_count
41                                         ,x_msg_data);
42 END create_rp_folder;
43 --------------------------------------------------------------------------------
44 PROCEDURE import_generic(p_api_version      IN  NUMBER
45                         ,p_run_id           IN  NUMBER
46                         ,p_rp_folder_id     IN  NUMBER
47                         ,x_run_id           OUT NOCOPY NUMBER
48                         ,x_status           OUT NOCOPY NUMBER)
49 IS
50 BEGIN
51 
52  cz_imp_ps_node.gContractsModel := TRUE;  /* cnd_devl_project() checks this to allow seeded models */
53  cz_modeloperations_pub.import_generic(p_api_version
54                                        ,p_run_id
55                                        ,p_rp_folder_id
56                                        ,x_run_id
57                                        ,x_status);
58  cz_imp_ps_node.gContractsModel := FALSE;
59 EXCEPTION
60   WHEN OTHERS THEN
61     cz_imp_ps_node.gContractsModel := FALSE;
62     RAISE;
63 END import_generic;
64 --------------------------------------------------------------------------------
65 PROCEDURE delete_model(p_api_version          IN  NUMBER
66                       ,p_model_id             IN  NUMBER
67                       ,p_orig_sys_ref         IN  VARCHAR2
68                       ,x_return_status        OUT NOCOPY  VARCHAR2
69                       ,x_msg_count            OUT NOCOPY  NUMBER
70                       ,x_msg_data             OUT NOCOPY  VARCHAR2)
71 IS
72 
73  l_api_version  CONSTANT NUMBER := 1.0;
74  l_api_name     CONSTANT VARCHAR2(30) := 'delete_model';
75  l_dummy_nbr    NUMBER;
76 
77 BEGIN
78 
79   IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
80     RAISE G_INCOMPATIBLE_API;
81   END IF;
82 
83   -- check for valid model id and orig sys ref
84   BEGIN
85     SELECT 1 into l_dummy_nbr
86     FROM cz_devl_projects
87     WHERE devl_project_id = p_model_id
88     AND orig_sys_ref = p_orig_sys_ref
89     AND deleted_flag = '0';
90   EXCEPTION
91     WHEN NO_DATA_FOUND THEN
92       x_msg_data := CZ_UTILS.GET_TEXT('CZ_MODEL_NOT_FOUND');
93       x_msg_count := 1;
94       RAISE FND_API.G_EXC_ERROR;
95   END;
96 
97   cz_developer_utils_pvt.delete_model(p_model_id
98                                      ,x_return_status
99                                      ,x_msg_count
100                                      ,x_msg_data);
101 EXCEPTION
102   WHEN FND_API.G_EXC_ERROR THEN
103     x_return_status := FND_API.G_RET_STS_ERROR;
104   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
105     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
106     fnd_msg_pub.count_and_get(p_count => x_msg_count,
107                               p_data  => x_msg_data);
108   WHEN OTHERS THEN
109     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
110     IF fnd_msg_pub.check_msg_Level(fnd_msg_pub.G_MSG_LVL_UNEXP_ERROR) THEN
111       fnd_msg_pub.add_exc_msg(G_PKG_NAME, l_api_name);
112     END IF;
113     fnd_msg_pub.count_and_get(p_count => x_msg_count,
114                               p_data  => x_msg_data);
115 END delete_model;
116 
117 --------------------------------------------------------------------------------
118 
119 PROCEDURE create_publication_request (
120 				  p_api_version  IN NUMBER,
121 				  p_model_id         IN NUMBER,
122 				  p_ui_def_id        IN NUMBER,
123 				  p_publication_mode IN VARCHAR2,
124 				  p_server_id        IN NUMBER,
125 				  p_appl_id_tbl      IN t_ref,
126 				  p_usg_id_tbl       IN t_ref,
127 				  p_lang_tbl         IN t_lang_code,
128 				  p_start_date       IN DATE,
129 				  p_end_date         IN DATE,
130 				  x_publication_id   OUT NOCOPY NUMBER,
131 				  x_return_status    OUT NOCOPY VARCHAR2,
132 				  x_msg_count        OUT NOCOPY NUMBER,
133 				  x_msg_data         OUT NOCOPY VARCHAR2
134 				 )
135 IS
136  l_appl_id_tbl   cz_pb_mgr.t_ref;
137  l_usg_id_tbl    cz_pb_mgr.t_ref;
138  l_lang_tbl      cz_pb_mgr.t_lang_code;
139 BEGIN
140     FOR i IN p_appl_id_tbl.FIRST..p_appl_id_tbl.LAST LOOP
141       l_appl_id_tbl(i) := p_appl_id_tbl(i);
142       l_usg_id_tbl(i) := p_usg_id_tbl(i);
143       l_lang_tbl(i) := p_lang_tbl(i);
144     END LOOP;
145     cz_pb_mgr.create_publication_request (p_model_id,
146 				  p_ui_def_id,
147 				  p_publication_mode,
148 				  p_server_id,
149 				  l_appl_id_tbl,
150 				  l_usg_id_tbl,
151 				  l_lang_tbl,
152 				  p_start_date,
153 				  p_end_date,
154 				  x_publication_id,
155 				  x_return_status,
156 				  x_msg_count,
157 				  x_msg_data);
158  EXCEPTION
159  WHEN OTHERS THEN
160    x_return_status := FND_API.G_RET_STS_ERROR;
161    FND_MESSAGE.SET_NAME('CZ', 'CZ_PB_CREATE_PB_REQUEST_ERR');
162    FND_MESSAGE.SET_TOKEN('ERROR',SQLERRM);
163    FND_MSG_PUB.ADD;
164    fnd_msg_pub.count_and_get(p_count => x_msg_count,
165 			     p_data  => x_msg_data);
166 END create_publication_request;
167 
168 --------------------
169 PROCEDURE EDIT_PUBLICATION(p_api_version     IN NUMBER,
170                            p_publicationId   IN NUMBER,
171                            p_applicationId   IN  OUT  NOCOPY VARCHAR2,
172                            p_languageId	   IN  OUT  NOCOPY VARCHAR2,
173                            p_usageId         IN  OUT  NOCOPY VARCHAR2,
174                            p_startDate	   IN	      DATE,
175                            p_disableDate     IN	      DATE,
176                            p_publicationMode IN       VARCHAR2,
177                            x_return_status OUT NOCOPY VARCHAR2,
178                            x_msg_count     OUT NOCOPY NUMBER,
179                            x_msg_data      OUT NOCOPY VARCHAR2)
180 IS
181 
182 BEGIN
183     cz_pb_mgr.edit_publication (p_publicationId,
184                                 p_applicationId,
185 				p_languageId,
186                                 p_usageId,
187 				p_startDate,
188 				p_disableDate,
189 				p_publicationMode,
190 				x_return_status,
191 				x_msg_count,
192 				x_msg_data);
193 EXCEPTION
194 WHEN OTHERS THEN
195    x_return_status := FND_API.G_RET_STS_ERROR;
196    FND_MESSAGE.SET_NAME('CZ', 'CZ_EDIT_PUB_ERR');
197    FND_MESSAGE.SET_TOKEN('ERROR',SQLERRM);
198    FND_MSG_PUB.ADD;
199    fnd_msg_pub.count_and_get(p_count => x_msg_count,
200 			     p_data  => x_msg_data);
201  END EDIT_PUBLICATION;
202 
203 -----------------------------------
204 PROCEDURE EDIT_PUBLICATION(p_api_version     IN NUMBER,
205                            p_publicationId   IN NUMBER,
206                            p_applicationId   IN  OUT  NOCOPY t_ref,
207                            p_languageId	   IN  OUT  NOCOPY t_lang_code,
208                            p_usageId         IN  OUT  NOCOPY t_ref,
209                            p_startDate	   IN	      DATE,
210                            p_disableDate     IN	      DATE,
211                            p_publicationMode IN       VARCHAR2,
212                            x_return_status OUT NOCOPY VARCHAR2,
213                            x_msg_count     OUT NOCOPY NUMBER,
214                            x_msg_data      OUT NOCOPY VARCHAR2)
215 IS
216 
217 l_lang_tbl  cz_pb_mgr.t_lang_code;
218 l_usg_tbl   cz_pb_mgr.t_ref;
219 l_appl_tbl  cz_pb_mgr.t_ref;
220 
221 
222 BEGIN
223 l_lang_tbl.DELETE;
224 l_usg_tbl.DELETE;
225 l_appl_tbl.DELETE;
226 
227 IF (p_applicationId.COUNT > 0) THEN
228 	FOR I IN p_applicationId.FIRST..p_applicationId.LAST
229 	LOOP
230 		l_appl_tbl(i) := p_applicationId(i);
231 	END LOOP;
232 END IF;
233 
234 IF (p_languageId.COUNT > 0) THEN
235 	FOR I IN p_languageId.FIRST..p_languageId.LAST
236 	LOOP
237 	    l_lang_tbl(i) := p_languageId(i);
238       END LOOP;
239 END IF;
240 
241 IF (p_usageId.COUNT > 0) THEN
242 	FOR I IN p_usageId.FIRST..p_usageId.LAST
243 	LOOP
244 		l_usg_tbl(i) := p_usageId(i);
245       END LOOP;
246 END IF;
247 
248 cz_pb_mgr.edit_publication (p_publicationId,
249                                 l_appl_tbl,
250 					  l_lang_tbl,
251                                 l_usg_tbl,
252 				  	  p_startDate,
253 					p_disableDate,
254 					p_publicationMode,
255 					x_return_status,
256 					x_msg_count,
257 					x_msg_data);
258 EXCEPTION
259 WHEN OTHERS THEN
260    x_return_status := FND_API.G_RET_STS_ERROR;
261    FND_MESSAGE.SET_NAME('CZ', 'CZ_EDIT_PUB_ERR');
262    FND_MESSAGE.SET_TOKEN('ERROR',SQLERRM);
263    FND_MSG_PUB.ADD;
264    fnd_msg_pub.count_and_get(p_count => x_msg_count,
265 			     p_data  => x_msg_data);
266  END EDIT_PUBLICATION;
267 
268 ----------------------------------
269 PROCEDURE DELETE_PUBLICATION(p_api_version     IN NUMBER,
270                              publicationId   IN NUMBER,
271                              x_return_status OUT NOCOPY VARCHAR2,
272                              x_msg_count     OUT NOCOPY NUMBER,
273                              x_msg_data      OUT NOCOPY VARCHAR2
274                             )
275 IS
276 
277 BEGIN
278    cz_pb_mgr.delete_publication(publicationId,x_return_status,x_msg_count,x_msg_data);
279 EXCEPTION
280 WHEN OTHERS THEN
281    x_return_status := FND_API.G_RET_STS_ERROR;
282    FND_MESSAGE.SET_NAME('CZ', 'CZ_DELETE_PUB_ERR');
283    FND_MESSAGE.SET_TOKEN('ERROR',SQLERRM);
284    FND_MSG_PUB.ADD;
285    fnd_msg_pub.count_and_get(p_count => x_msg_count,
286 			           p_data  => x_msg_data);
287 END DELETE_PUBLICATION;
288 ----------------------------------
289 PROCEDURE delete_ui_def(p_api_version              IN   NUMBER,
290                         p_ui_def_id                IN   NUMBER,
291                         x_return_status            OUT  NOCOPY   VARCHAR2,
292                         x_msg_count                OUT  NOCOPY   NUMBER,
293                         x_msg_data                 OUT  NOCOPY   VARCHAR2
294                         ) IS
295  l_api_name      CONSTANT VARCHAR2(30) := 'delete_ui_def';
296  l_api_version   CONSTANT NUMBER := 1.0;
297 
298 BEGIN
299  -- should initialized the fnd_msg_pub?
300  IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
301    RAISE G_INCOMPATIBLE_API;
302  END IF;
303 
304  cz_developer_utils_pvt.delete_ui_def(p_ui_def_id,
305                                       x_return_status,
306                                       x_msg_count,
307                                       x_msg_data);
308 EXCEPTION
309   WHEN G_INCOMPATIBLE_API THEN
310     x_return_status := FND_API.G_RET_STS_ERROR;
311     x_msg_count := 1;
312     x_msg_data := CZ_UTILS.GET_TEXT('CZ_MOP_API_VERSION_ERR', 'CODE_VERSION', l_api_version, 'IN_VERSION', p_api_version);
313     FND_MSG_PUB.add;
314   WHEN OTHERS THEN
315     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
316     x_msg_count := 1;
317     x_msg_data := SQLERRM;
318     fnd_msg_pub.add_exc_msg(G_PKG_NAME, l_api_name, x_msg_data);
319 END delete_ui_def;
320 
321 PROCEDURE generate_logic(p_api_version      IN            NUMBER,
322                          p_devl_project_id  IN            NUMBER,
323                          x_run_id           OUT  NOCOPY   NUMBER,
324                          x_return_status    OUT  NOCOPY   VARCHAR2,
325                          x_msg_count        OUT  NOCOPY   NUMBER,
326                          x_msg_data         OUT  NOCOPY   VARCHAR2) IS
327 
328  l_api_name      CONSTANT VARCHAR2(30) := 'generate_logic';
329  l_api_version   CONSTANT NUMBER := 1.0;
330  l_status        NUMBER;
331 
332 BEGIN
333 
334  x_msg_count := 0;
335  fnd_msg_pub.initialize;
336  IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
337    RAISE G_INCOMPATIBLE_API;
338  END IF;
339 
340  cz_modeloperations_pub.generate_logic(p_api_version     => 1.0,
341                                        p_devl_project_id => p_devl_project_id,
342                                        x_run_id          => x_run_id,
343                                        x_status          => l_status);
344 
345  IF (x_run_id <> 0) THEN
346    FOR i IN (SELECT message FROM cz_db_logs
347              WHERE run_id = x_run_id)
348    LOOP
349       FND_MSG_PUB.ADD_EXC_MSG(G_PKG_NAME,l_api_name,i.message);
350       x_msg_data := i.message;
351       x_msg_count := x_msg_count + 1;
352    END LOOP;
353  END IF;
354  IF (l_status = cz_modeloperations_pub.G_STATUS_ERROR) THEN
355    x_return_status := FND_API.G_RET_STS_ERROR;
356  ELSE
357    x_return_status := FND_API.G_RET_STS_SUCCESS;
358  END IF;
359 EXCEPTION
360   WHEN G_INCOMPATIBLE_API THEN
361     x_return_status := FND_API.G_RET_STS_ERROR;
362     x_msg_count := 1;
363     x_msg_data := CZ_UTILS.GET_TEXT('CZ_MOP_API_VERSION_ERR', 'CODE_VERSION', l_api_version, 'IN_VERSION', p_api_version);
364     FND_MSG_PUB.add;
365   WHEN OTHERS THEN
366     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
367     x_msg_count := 1;
368     x_msg_data := SQLERRM;
369     fnd_msg_pub.add_exc_msg(G_PKG_NAME, l_api_name, x_msg_data);
370 END generate_logic;
371 
372 PROCEDURE publish_model(p_api_version      IN            NUMBER,
373                         p_publication_id   IN            NUMBER,
374                         x_run_id           OUT  NOCOPY   NUMBER,
375                         x_return_status    OUT  NOCOPY   VARCHAR2,
376                         x_msg_count        OUT  NOCOPY   NUMBER,
377                         x_msg_data         OUT  NOCOPY   VARCHAR2) IS
378 
379  l_api_name      CONSTANT VARCHAR2(30) := 'publish_model';
380  l_api_version   CONSTANT NUMBER := 1.0;
381  l_status        NUMBER;
382 
383 BEGIN
384 
385  x_msg_count := 0;
386  fnd_msg_pub.initialize;
387  IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
388    RAISE G_INCOMPATIBLE_API;
389  END IF;
390 
391  cz_modeloperations_pub.publish_model(p_api_version    => 1.0,
392                                       p_publication_id => p_publication_id,
393                                       x_run_id         => x_run_id,
394                                       x_status         => l_status);
395 
396  IF (x_run_id <> 0) THEN
397    FOR i IN (SELECT message FROM cz_db_logs
398              WHERE run_id = x_run_id)
399    LOOP
400       FND_MSG_PUB.ADD_EXC_MSG(G_PKG_NAME,l_api_name,i.message);
401       x_msg_count := x_msg_count + 1;
402       x_msg_data := i.message;
403    END LOOP;
404  END IF;
405  IF (l_status = cz_modeloperations_pub.G_STATUS_ERROR) THEN
406    x_return_status := FND_API.G_RET_STS_ERROR;
407  ELSE
408    x_return_status := FND_API.G_RET_STS_SUCCESS;
409  END IF;
410 EXCEPTION
411   WHEN G_INCOMPATIBLE_API THEN
412     x_return_status := FND_API.G_RET_STS_ERROR;
413     x_msg_count := 1;
414     x_msg_data := CZ_UTILS.GET_TEXT('CZ_MOP_API_VERSION_ERR', 'CODE_VERSION', l_api_version, 'IN_VERSION', p_api_version);
415     FND_MSG_PUB.add;
416   WHEN OTHERS THEN
417     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
418     x_msg_count := 1;
419     x_msg_data := SQLERRM;
420     fnd_msg_pub.add_exc_msg(G_PKG_NAME, l_api_name, x_msg_data);
421 END publish_model;
422 -------------------------------------------------------------------------------
423 
424 PROCEDURE create_jrad_ui(p_api_version        IN  NUMBER,
425                          p_devl_project_id    IN  NUMBER,
426                          p_show_all_nodes     IN  VARCHAR2,
427                          p_master_template_id IN  NUMBER,
428                          p_create_empty_ui    IN  VARCHAR2,
429                          x_ui_def_id          OUT NOCOPY NUMBER,
430                          x_return_status      OUT NOCOPY VARCHAR2,
431                          x_msg_count          OUT NOCOPY NUMBER,
432                          x_msg_data           OUT NOCOPY VARCHAR2) IS
433 BEGIN
434  -- fix for bug 6905101 ; skudryav 01-apr-2008
435  FOR i IN(SELECT ui_def_id FROM CZ_UI_DEFS
436            WHERE devl_project_id=p_devl_project_id AND
437                  ui_style='7' AND
438                  deleted_flag='0')
439  LOOP
440     cz_modeloperations_pub.refresh_jrad_ui(p_api_version   => 1.0,
441                                            p_ui_def_id     => i.ui_def_id,
442                                            x_return_status => x_return_status,
443                                            x_msg_count     => x_msg_count,
444                                            x_msg_data      => x_msg_data);
445     -- return in case of failure
446     IF x_return_status IN(FND_API.G_RET_STS_ERROR, FND_API.G_RET_STS_UNEXP_ERROR) THEN
447       RETURN;
448     END IF;
449  END LOOP;
450  cz_modeloperations_pub.create_jrad_ui(p_api_version        => 1.0,
451                                        p_devl_project_id    => p_devl_project_id,
452                                        p_show_all_nodes     => p_show_all_nodes,
453                                        p_master_template_id => p_master_template_id,
454                                        p_create_empty_ui    => p_create_empty_ui,
455                                        x_ui_def_id          => x_ui_def_id,
456                                        x_return_status      => x_return_status,
457                                        x_msg_count          => x_msg_count,
458                                        x_msg_data           => x_msg_data);
459 END create_jrad_ui;
460 
461 END CZ_contracts_api_grp;