[Home] [Help]
PACKAGE BODY: APPS.CZ_MODELOPERATIONS_PUB
Source
1 PACKAGE BODY CZ_modelOperations_pub AS
2 /* $Header: czmodopb.pls 120.4.12010000.2 2008/09/12 10:00:51 jonatara ship $ */
3 ------------------------------------------------------------------------------------------
4
5 G_INCOMPATIBLE_API EXCEPTION;
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'ModelOperationsPub';
7 -----------------------------------------------------
8 PROCEDURE generate_logic(p_api_version IN NUMBER,
9 p_devl_project_id IN NUMBER,
10 x_run_id OUT NOCOPY NUMBER,
11 x_status OUT NOCOPY NUMBER) IS
12 l_api_name CONSTANT VARCHAR2(30) := 'generate_logic';
13 l_api_version CONSTANT NUMBER := 1.0;
14 l_urgency NUMBER;
15 l_found NUMBER;
16 l_msg_count NUMBER;
17 l_msg_data VARCHAR2(10000);
18 l_errbuf VARCHAR2(2000);
19 NOT_VALID_PROJECT_ID EXCEPTION;
20
21 BEGIN
22 SELECT cz_xfr_run_infos_s.NEXTVAL INTO x_run_id FROM DUAL;
23 IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
24 RAISE G_INCOMPATIBLE_API;
25 END IF;
26
27 BEGIN
28 SELECT 1
29 INTO l_found
30 FROM cz_rp_entries
31 WHERE object_type = 'PRJ' AND object_id = p_devl_project_id AND deleted_flag = '0';
32 EXCEPTION
33 WHEN NO_DATA_FOUND THEN
34 RAISE NOT_VALID_PROJECT_ID;
35 END;
36
37 CZ_LOGIC_GEN.GENERATE_LOGIC(p_devl_project_id, x_run_id);
38
39 SELECT MIN(urgency)
40 INTO l_urgency
41 FROM cz_db_logs
42 WHERE run_id = x_run_id;
43
44 IF l_urgency = 0 THEN
45 x_status := G_STATUS_ERROR;
46 ELSIF l_urgency = 1 THEN
47 x_status := G_STATUS_WARNING;
48 ELSIF l_urgency IS NULL THEN
49 x_status := G_STATUS_SUCCESS;
50 x_run_id := 0;
51 END IF;
52
53 EXCEPTION
54 WHEN G_INCOMPATIBLE_API THEN
55 x_status := G_STATUS_ERROR;
56 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_API_VERSION_ERR', 'CODE_VERSION', l_api_version, 'IN_VERSION', p_api_version);
57 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
58 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
59 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
60 COMMIT;
61 WHEN NOT_VALID_PROJECT_ID THEN
62 x_status := G_STATUS_ERROR;
63 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_DEV_PRJ_ID_ERR', 'PROJID', p_devl_project_id);
64 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
65 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
66 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
67 COMMIT;
68 WHEN OTHERS THEN
69 x_status := G_STATUS_ERROR;
70 l_errbuf := SQLERRM;
71 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_UNEXPECTED);
72 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
73 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
74 COMMIT;
75 END generate_logic;
76 ------------------------------------------------------------------------------------------------
77 PROCEDURE generate_logic(p_api_version IN NUMBER,
78 p_devl_project_id IN NUMBER,
79 p_user_id IN NUMBER,
80 p_resp_id IN NUMBER,
81 p_appl_id IN NUMBER,
82 x_run_id OUT NOCOPY NUMBER,
83 x_status OUT NOCOPY NUMBER) IS
84
85 BEGIN
86 fnd_global.apps_initialize(p_user_id,p_resp_id,p_appl_id);
87 generate_logic(p_api_version,p_devl_project_id,x_run_id,x_status);
88 END generate_logic;
89 --------------------------------------
90 PROCEDURE create_ui(p_api_version IN NUMBER,
91 p_devl_project_id IN NUMBER,
92 x_ui_def_id OUT NOCOPY NUMBER,
93 x_run_id OUT NOCOPY NUMBER,
94 x_status OUT NOCOPY NUMBER,
95 p_ui_style IN VARCHAR2 , -- DEFAULT 'COMPONENTS',
96 p_frame_allocation IN NUMBER , -- DEFAULT 30,
97 p_width IN NUMBER , -- DEFAULT 640,
98 p_height IN NUMBER , -- DEFAULT 480,
99 p_show_all_nodes IN VARCHAR2 , -- DEFAULT '0',
100 p_look_and_feel IN VARCHAR2 , -- DEFAULT 'BLAF',
101 p_wizard_style IN VARCHAR2 , -- DEFAULT '0',
102 p_max_bom_per_page IN NUMBER , -- DEFAULT 10,
103 p_use_labels IN VARCHAR2 -- DEFAULT '1'
104 ) IS
105 l_api_name CONSTANT VARCHAR2(30) := 'create_ui';
106 l_api_version CONSTANT NUMBER := 1.0;
107 l_errbuf VARCHAR2(2000);
108 l_found NUMBER;
109 NOT_VALID_PROJECT_ID EXCEPTION;
110 WRONG_UI_STYLE EXCEPTION;
111 WRONG_FRAME_ALLCN EXCEPTION;
112 WRONG_WIDTH EXCEPTION;
113 WRONG_HEIGHT EXCEPTION;
114 WRONG_SHOW_NODES EXCEPTION;
115 WRONG_USE_LABELS EXCEPTION;
116 WRONG_LOOK_AND_FEEL EXCEPTION;
117 WRONG_MAX_BOM EXCEPTION;
118 WRONG_WIZARD_STYLE EXCEPTION;
119
120 BEGIN
121 SAVEPOINT create_ui_PUB;
122
123 SELECT cz_xfr_run_infos_s.NEXTVAL INTO x_run_id FROM DUAL;
124 IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
125 RAISE G_INCOMPATIBLE_API;
126 END IF;
127
128 BEGIN
129 SELECT 1
130 INTO l_found
131 FROM cz_rp_entries
132 WHERE object_type = 'PRJ' AND object_id = p_devl_project_id AND deleted_flag = '0';
133 EXCEPTION
134 WHEN NO_DATA_FOUND THEN
135 RAISE NOT_VALID_PROJECT_ID;
136 END;
137
138 IF p_ui_style NOT IN ('0','3','COMPONENTS','APPLET') THEN
139 RAISE WRONG_UI_STYLE;
140 END IF;
141
142 IF p_frame_allocation < 0 OR p_frame_allocation > 50 THEN
143 RAISE WRONG_FRAME_ALLCN;
144 END IF;
145
146 IF p_width < 0 OR p_width > 1600 THEN
147 RAISE WRONG_WIDTH;
148 END IF;
149
150 IF p_height < 0 OR p_height > 1200 THEN
151 RAISE WRONG_HEIGHT;
152 END IF;
153
154 IF p_show_all_nodes NOT IN (0,1) THEN
155 RAISE WRONG_SHOW_NODES;
156 END IF;
157
158 IF p_use_labels NOT IN (0,1,2) THEN
159 RAISE WRONG_USE_LABELS;
160 END IF;
161
162 IF p_use_labels NOT IN (0,1,2) THEN
163 RAISE WRONG_USE_LABELS;
164 END IF;
165
166 IF p_look_and_feel NOT IN ('BLAF','FORMS','APPLET') THEN
167 RAISE WRONG_LOOK_AND_FEEL;
168 END IF;
169
170 IF p_use_labels < 1 THEN
171 RAISE WRONG_MAX_BOM;
172 END IF;
173
174 IF p_wizard_style NOT IN (0,1) THEN
175 RAISE WRONG_WIZARD_STYLE;
176 END IF;
177
178 CZ_UI_GENERATOR.createUI(p_devl_project_id, x_ui_def_id, x_run_id, p_ui_style, p_frame_allocation, p_width,
179 p_height, p_show_all_nodes, p_use_labels, p_look_and_feel, p_max_bom_per_page, p_wizard_style);
180 IF x_run_id = 0 THEN
181 x_status := G_STATUS_SUCCESS;
182 COMMIT WORK;
183 ELSE
184 x_status := G_STATUS_ERROR;
185 ROLLBACK TO create_ui_PUB;
186 END IF;
187
188 EXCEPTION
189 WHEN G_INCOMPATIBLE_API THEN
190 x_status := G_STATUS_ERROR;
191 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_API_VERSION_ERR', 'CODE_VERSION', l_api_version, 'IN_VERSION', p_api_version);
192 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
193 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
194 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
195 COMMIT;
196 WHEN NOT_VALID_PROJECT_ID THEN
197 x_status := G_STATUS_ERROR;
198 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_DEV_PRJ_ID_ERR', 'PROJID', p_devl_project_id);
199 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
200 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
201 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
202 COMMIT;
203 WHEN WRONG_UI_STYLE THEN
204 x_status := G_STATUS_ERROR;
205 l_errbuf := CZ_UTILS.GET_TEXT('CZ_UI_STYLE_ERR');
206 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
207 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
208 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
209 COMMIT;
210 WHEN WRONG_FRAME_ALLCN THEN
211 x_status := G_STATUS_ERROR;
212 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_FRAME_ALLCN_ERR');
213 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
214 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
215 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
216 COMMIT;
217 WHEN WRONG_WIDTH THEN
218 x_status := G_STATUS_ERROR;
219 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_WIDTH_ERR');
220 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
221 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
222 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
223 COMMIT;
224 WHEN WRONG_HEIGHT THEN
225 x_status := G_STATUS_ERROR;
226 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_HEIGHT_ERR');
227 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
228 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
229 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
230 COMMIT;
231 WHEN WRONG_SHOW_NODES THEN
232 x_status := G_STATUS_ERROR;
233 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_SHOW_ALL_NODES_ERR');
234 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
235 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
236 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
237 COMMIT;
238 WHEN WRONG_USE_LABELS THEN
239 x_status := G_STATUS_ERROR;
240 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_USE_LABELS_ERR');
241 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
242 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
243 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
244 COMMIT;
245 WHEN WRONG_LOOK_AND_FEEL THEN
246 x_status := G_STATUS_ERROR;
247 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_LOOK_AND_FEEL_ERR');
248 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
249 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
250 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
251 COMMIT;
252 WHEN WRONG_MAX_BOM THEN
253 x_status := G_STATUS_ERROR;
254 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_MAX_BOM_PER_PAGE_ERR');
255 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
256 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
257 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
258 COMMIT;
259 WHEN WRONG_WIZARD_STYLE THEN
260 x_status := G_STATUS_ERROR;
261 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_WIZARD_STYLE_ERR');
262 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
263 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
264 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
265 COMMIT;
266 WHEN OTHERS THEN
267 x_status := G_STATUS_ERROR;
268 ROLLBACK TO create_ui_PUB;
269 l_errbuf := SQLERRM;
270 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_UNEXPECTED);
271 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
272 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
273 COMMIT;
274 END create_ui;
275
276 ------------------------------------------------------------------------------------------------
277 PROCEDURE create_ui(p_api_version IN NUMBER,
278 p_devl_project_id IN NUMBER,
279 p_user_id IN NUMBER,
280 p_resp_id IN NUMBER,
281 p_appl_id IN NUMBER,
282 x_ui_def_id OUT NOCOPY NUMBER,
283 x_run_id OUT NOCOPY NUMBER,
284 x_status OUT NOCOPY NUMBER,
285 p_ui_style IN VARCHAR2 , -- DEFAULT 'COMPONENTS',
286 p_frame_allocation IN NUMBER , -- DEFAULT 30,
287 p_width IN NUMBER , -- DEFAULT 640,
288 p_height IN NUMBER , -- DEFAULT 480,
289 p_show_all_nodes IN VARCHAR2 , -- DEFAULT '0',
290 p_look_and_feel IN VARCHAR2 , -- DEFAULT 'BLAF',
291 p_wizard_style IN VARCHAR2 , -- DEFAULT '0',
292 p_max_bom_per_page IN NUMBER , -- DEFAULT 10,
293 p_use_labels IN VARCHAR2 -- DEFAULT '1'
294 ) IS
295 BEGIN
296 fnd_global.apps_initialize(p_user_id,p_resp_id,p_appl_id);
297 create_ui(p_api_version,
298 p_devl_project_id,
299 x_ui_def_id,
300 x_run_id,
301 x_status,
302 p_ui_style,
303 p_frame_allocation,
304 p_width,
305 p_height,
306 p_show_all_nodes,
307 p_look_and_feel,
308 p_wizard_style,
309 p_max_bom_per_page,
310 p_use_labels
311 );
312 END create_ui;
313
314 --------------------------------------------------------
315
316 /* generate JRAD style UI
317 * Parameters :
318 * p_api_version -- identifies version of API
319 * p_devl_project_id -- identifies Model for which UI will be generated
320 * p_show_all_nodes -- '1' - ignore ps node property "DO NOT SHOW IN UI"
321 * p_master_template_id -- identifies UI Master Template
322 * p_create_empty_ui -- '1' - create empty UI ( which contains only one record in CZ_UI_DEFS )
323 * x_ui_def_id -- ui_def_id of UI that has been generated
324 * x_return_status -- status string
325 * x_msg_count -- number of error messages
326 * x_msg_data -- string which contains error messages
327 */
328 PROCEDURE create_jrad_ui(p_api_version IN NUMBER,
329 p_devl_project_id IN NUMBER,
330 p_show_all_nodes IN VARCHAR2,
331 p_master_template_id IN NUMBER,
332 p_create_empty_ui IN VARCHAR2,
333 x_ui_def_id OUT NOCOPY NUMBER,
334 x_return_status OUT NOCOPY VARCHAR2,
335 x_msg_count OUT NOCOPY NUMBER,
336 x_msg_data OUT NOCOPY VARCHAR2) IS
337
338 l_api_name CONSTANT VARCHAR2(30) := 'create_jrad_ui';
339 l_api_version CONSTANT NUMBER := 1.0;
340 l_errbuf VARCHAR2(2000);
341 l_found NUMBER;
342 NOT_VALID_PROJECT_ID EXCEPTION;
343 WRONG_SHOW_NODES EXCEPTION;
344
345 BEGIN
346 SAVEPOINT create_ui_PUB;
347
348 IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
349 RAISE G_INCOMPATIBLE_API;
350 END IF;
354 INTO l_found
351
352 BEGIN
353 SELECT 1
355 FROM cz_rp_entries
356 WHERE object_type = 'PRJ' AND object_id = p_devl_project_id AND deleted_flag = '0';
357 EXCEPTION
358 WHEN NO_DATA_FOUND THEN
359 RAISE NOT_VALID_PROJECT_ID;
360 END;
361
362 IF p_show_all_nodes NOT IN ('0','1') THEN
363 RAISE WRONG_SHOW_NODES;
364 END IF;
365
366 CZ_UIOA_PVT.create_UI
367 (
368 p_model_id => p_devl_project_id,
369 p_master_template_id => p_master_template_id,
370 p_show_all_nodes => p_show_all_nodes,
371 p_create_empty_ui => p_create_empty_ui,
372 x_ui_def_id => x_ui_def_id,
373 x_return_status => x_return_status,
374 x_msg_count => x_msg_count,
375 x_msg_data => x_msg_data
376 );
377
378 IF x_msg_count = 0 THEN
379 COMMIT WORK;
380 ELSE
381 ROLLBACK TO create_ui_PUB;
382 END IF;
383
384 EXCEPTION
385 WHEN G_INCOMPATIBLE_API THEN
386 x_return_status := FND_API.G_RET_STS_ERROR;
387 FND_MESSAGE.SET_NAME('CZ', 'CZ_MOP_API_VERSION_ERR');
388 FND_MESSAGE.SET_TOKEN('CODE_VERSION', l_api_version);
389 FND_MESSAGE.SET_TOKEN('IN_VERSION', p_api_version);
390 FND_MSG_PUB.ADD;
391 FND_MSG_PUB.count_and_get(p_count => x_msg_count,
392 p_data => x_msg_data);
393
394 WHEN NOT_VALID_PROJECT_ID THEN
395 x_return_status := FND_API.G_RET_STS_ERROR;
396 FND_MESSAGE.SET_NAME('CZ', 'CZ_MOP_DEV_PRJ_ID_ERR');
397 FND_MESSAGE.SET_TOKEN('PROJID', p_devl_project_id);
398 FND_MSG_PUB.ADD;
399 FND_MSG_PUB.count_and_get(p_count => x_msg_count,
400 p_data => x_msg_data);
401 WHEN WRONG_SHOW_NODES THEN
402 x_return_status := FND_API.G_RET_STS_ERROR;
403 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_SHOW_ALL_NODES_ERR');
404
405
406 FND_MESSAGE.SET_NAME('CZ', 'CZ_MOP_SHOW_ALL_NODES_ERR');
407 FND_MSG_PUB.ADD;
408 FND_MSG_PUB.count_and_get(p_count => x_msg_count,
409 p_data => x_msg_data);
410
411 WHEN OTHERS THEN
412 x_return_status := FND_API.G_RET_STS_ERROR;
413 ROLLBACK TO create_ui_PUB;
414 l_errbuf := SQLERRM;
415 END create_jrad_ui;
416
417 ------------------------------------------------------------------------------------------------
418 PROCEDURE create_jrad_ui(p_api_version IN NUMBER,
419 p_user_id IN NUMBER,
420 p_resp_id IN NUMBER,
421 p_appl_id IN NUMBER,
422 p_devl_project_id IN NUMBER,
423 p_show_all_nodes IN VARCHAR2,
424 p_master_template_id IN NUMBER,
425 p_create_empty_ui IN VARCHAR2,
426 x_ui_def_id OUT NOCOPY NUMBER,
427 x_return_status OUT NOCOPY VARCHAR2,
428 x_msg_count OUT NOCOPY NUMBER,
429 x_msg_data OUT NOCOPY VARCHAR2) IS
430
431 BEGIN
432 fnd_global.apps_initialize(p_user_id,p_resp_id,p_appl_id);
433 create_jrad_ui(p_api_version => p_api_version,
434 p_devl_project_id => p_devl_project_id,
435 p_show_all_nodes => p_show_all_nodes,
436 p_master_template_id => p_master_template_id,
437 p_create_empty_ui => p_create_empty_ui,
438 x_ui_def_id => x_ui_def_id,
439 x_return_status => x_return_status,
440 x_msg_count => x_msg_count,
441 x_msg_data => x_msg_data);
442 END create_jrad_ui;
443
444 --------------------------------------------------------
445
446 PROCEDURE refresh_ui(p_api_version IN NUMBER,
447 p_ui_def_id IN OUT NOCOPY NUMBER,
448 x_run_id OUT NOCOPY NUMBER,
449 x_status OUT NOCOPY NUMBER) IS
450 l_api_name CONSTANT VARCHAR2(30) := 'refresh_ui';
451 l_api_version CONSTANT NUMBER := 1.0;
452 l_urgency NUMBER;
453 l_errbuf VARCHAR2(2000);
454 l_found NUMBER;
455 l_found_ui NUMBER;
456 NOT_VALID_UI_DEF_ID EXCEPTION;
457 NOT_VALID_PROJECT_ID EXCEPTION;
458
459 BEGIN
460 -- Start of API savepoint
461 SAVEPOINT refresh_ui_PUB;
462
463 SELECT cz_xfr_run_infos_s.NEXTVAL INTO x_run_id FROM DUAL;
464 IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
465 RAISE G_INCOMPATIBLE_API;
466 END IF;
467
468 BEGIN
469 SELECT 1
470 INTO l_found_ui
471 FROM cz_ui_defs
472 WHERE ui_def_id = p_ui_def_id AND deleted_flag = '0';
473 EXCEPTION
474 WHEN NO_DATA_FOUND THEN
475 RAISE NOT_VALID_UI_DEF_ID;
476 END;
477
478 BEGIN
479 SELECT 1
480 INTO l_found
481 FROM cz_rp_entries rp, cz_ui_defs uidef
485 WHEN NO_DATA_FOUND THEN
482 WHERE object_type = 'PRJ' AND object_id = devl_project_id AND ui_def_id = p_ui_def_id
483 AND rp.deleted_flag = '0' AND uidef.deleted_flag = '0';
484 EXCEPTION
486 RAISE NOT_VALID_PROJECT_ID;
487 END;
488
489 CZ_UI_GENERATOR.refreshUI(p_ui_def_id, x_run_id);
490
491 IF x_run_id = 0 THEN
492 x_status := G_STATUS_SUCCESS;
493 ELSE
494 SELECT max(urgency)
495 INTO l_urgency
496 FROM cz_db_logs
497 WHERE run_id = x_run_id;
498
499 IF l_urgency = 1 THEN
500 x_status := G_STATUS_ERROR;
501 ROLLBACK TO refresh_ui_PUB;
502 ELSIF l_urgency = 0 THEN
503 x_status := G_STATUS_WARNING;
504 END IF;
505 END IF;
506
507 COMMIT WORK;
508 EXCEPTION
509 WHEN G_INCOMPATIBLE_API THEN
510 x_status := G_STATUS_ERROR;
511 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_API_VERSION_ERR', 'CODE_VERSION', l_api_version, 'IN_VERSION', p_api_version);
512 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
513 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
514 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
515 COMMIT;
516 WHEN NOT_VALID_UI_DEF_ID THEN
517 x_status := G_STATUS_ERROR;
518 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_UI_DEF_ID_ERR');
519 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
520 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
521 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
522 COMMIT;
523 WHEN NOT_VALID_PROJECT_ID THEN
524 x_status := G_STATUS_ERROR;
525 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_UI_PRJ_ERR', 'UIDEF', p_ui_def_id);
526 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
527 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
528 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
529 COMMIT;
530 WHEN OTHERS THEN
531 x_status := G_STATUS_ERROR;
532 ROLLBACK TO refresh_ui_PUB;
533 l_errbuf := SQLERRM;
534 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_UNEXPECTED);
535 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
536 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
537 COMMIT;
538 END refresh_ui;
539 ------------------------------------------------------------------------------------------------
540 PROCEDURE refresh_ui(p_api_version IN NUMBER,
541 p_ui_def_id IN OUT NOCOPY NUMBER,
542 p_user_id IN NUMBER,
543 p_resp_id IN NUMBER,
544 p_appl_id IN NUMBER,
545 x_run_id OUT NOCOPY NUMBER,
546 x_status OUT NOCOPY NUMBER)
547 IS
548 BEGIN
549 fnd_global.apps_initialize(p_user_id,p_resp_id,p_appl_id);
550 refresh_ui( p_api_version,
551 p_ui_def_id,
552 x_run_id,
553 x_status);
554 END refresh_ui;
555
556 ------------------------------------------------------------
557 -- Start of comments
558 -- API name : refresh_Jrad_UI
559 -- Type : Public.
560 -- Function : Refresh an existing JRAD style user interface based on the current model data.
561 -- Pre-reqs : None.
562 -- Parameters :
563 -- IN : p_api_version - identifies version of API
564 -- p_ui_def_id - identifies UI to refresh
565 -- OUT :
566 -- x_return_status -- status string
567 -- x_msg_count -- number of error messages
568 -- x_msg_data -- string which contains error messages
569 --
570 -- Version : Current version 1.0
571 -- Initial version 1.0
572 -- Notes :
573 --
574 -- End of comments
575 --
576 PROCEDURE refresh_jrad_ui(p_api_version IN NUMBER,
577 p_ui_def_id IN OUT NOCOPY NUMBER,
578 x_return_status OUT NOCOPY VARCHAR2,
579 x_msg_count OUT NOCOPY NUMBER,
580 x_msg_data OUT NOCOPY VARCHAR2) IS
581
582 l_api_name CONSTANT VARCHAR2(30) := 'refresh_ui';
583 l_api_version CONSTANT NUMBER := 1.0;
584 l_urgency NUMBER;
585 l_errbuf VARCHAR2(2000);
586 l_found NUMBER;
587 l_ui_style CZ_UI_DEFS.ui_style%TYPE;
588 NOT_VALID_UI_DEF_ID EXCEPTION;
589 WRONG_UI_STYLE EXCEPTION;
590
591 BEGIN
592 -- Start of API savepoint
593 SAVEPOINT refresh_ui_PUB;
594
595 IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
596 RAISE G_INCOMPATIBLE_API;
597 END IF;
598
599 BEGIN
600 SELECT ui_style
601 INTO l_ui_style
602 FROM cz_ui_defs
603 WHERE ui_def_id = p_ui_def_id AND deleted_flag = '0';
604 EXCEPTION
608
605 WHEN NO_DATA_FOUND THEN
606 RAISE NOT_VALID_UI_DEF_ID;
607 END;
609 IF l_ui_style NOT IN ('7','JRAD') THEN
610 RAISE WRONG_UI_STYLE;
611 END IF;
612
613 CZ_UIOA_PVT.refresh_UI(p_ui_def_id => p_ui_def_id,
614 x_return_status => x_return_status,
615 x_msg_count => x_msg_count,
616 x_msg_data => x_msg_data);
617
618 IF x_msg_count > 0 THEN
619 ROLLBACK TO refresh_ui_PUB;
620 END IF;
621
622 COMMIT WORK;
623
624 EXCEPTION
625 WHEN G_INCOMPATIBLE_API THEN
626 x_return_status := FND_API.G_RET_STS_ERROR;
627 FND_MESSAGE.SET_NAME('CZ', 'CZ_MOP_API_VERSION_ERR');
628 FND_MESSAGE.SET_TOKEN('CODE_VERSION', l_api_version);
629 FND_MESSAGE.SET_TOKEN('IN_VERSION', p_api_version);
630 FND_MSG_PUB.ADD;
631 FND_MSG_PUB.count_and_get(p_count => x_msg_count,
632 p_data => x_msg_data);
633
634 WHEN NOT_VALID_UI_DEF_ID THEN
635 x_return_status := FND_API.G_RET_STS_ERROR;
636 FND_MESSAGE.SET_NAME('CZ', 'CZ_MOP_UI_DEF_ID_ERR');
637 FND_MSG_PUB.ADD;
638 FND_MSG_PUB.count_and_get(p_count => x_msg_count,
639 p_data => x_msg_data);
640
641 WHEN WRONG_UI_STYLE THEN
642 x_return_status := FND_API.G_RET_STS_ERROR;
643 FND_MESSAGE.SET_NAME('CZ', 'CZ_UI_STYLE_ERR');
644 FND_MSG_PUB.ADD;
645 FND_MSG_PUB.count_and_get(p_count => x_msg_count,
646 p_data => x_msg_data);
647
648 WHEN OTHERS THEN
649 x_return_status := FND_API.G_RET_STS_ERROR;
650 ROLLBACK TO refresh_ui_PUB;
651 END refresh_jrad_ui;
652
653 ------------------------------------------------------------------------------------------------
654
655 PROCEDURE refresh_jrad_ui(p_api_version IN NUMBER,
656 p_user_id IN NUMBER,
657 p_resp_id IN NUMBER,
658 p_appl_id IN NUMBER,
659 p_ui_def_id IN OUT NOCOPY NUMBER,
660 x_return_status OUT NOCOPY VARCHAR2,
661 x_msg_count OUT NOCOPY NUMBER,
662 x_msg_data OUT NOCOPY VARCHAR2) IS
663 BEGIN
664 fnd_global.apps_initialize(p_user_id,p_resp_id,p_appl_id);
665 refresh_jrad_ui(p_api_version => p_api_version,
666 p_ui_def_id => p_ui_def_id,
667 x_return_status => x_return_status,
668 x_msg_count => x_msg_count,
669 x_msg_data => x_msg_data);
670 END refresh_jrad_ui;
671
672 ------------------------------------------------------------
673
674 PROCEDURE import_single_bill(p_api_version IN NUMBER,
675 p_org_id IN NUMBER,
676 p_top_inv_item_id IN NUMBER,
677 x_run_id OUT NOCOPY NUMBER,
678 x_status OUT NOCOPY NUMBER) IS -- sselahi: removed x_run_info_id
679 l_api_name CONSTANT VARCHAR2(30) := 'import_single_bill';
680 l_api_version CONSTANT NUMBER := 1.0;
681 l_error BOOLEAN := FALSE;
682 l_db_link CZ_SERVERS.fndnam_link_name%TYPE;
683 l_Exist VARCHAR2(1):= 'N';
684 l_err VARCHAR2(1);
685 l_errbuf VARCHAR2(2000);
686 l_retcode NUMBER;
687 l_user_name VARCHAR2(100);
688 l_user_id NUMBER;
689 l_resp_id NUMBER;
690 l_appl_id NUMBER;
691 TOO_MANY_IMP_SERVERS EXCEPTION;
692 NO_IMP_SERVERS EXCEPTION;
693 WRONG_EXV_VIEWS EXCEPTION;
694 DB_LINK_IS_DOWN EXCEPTION;
695 SESS_NOT_INITIALIZED EXCEPTION;
696
697 BEGIN
698
699 IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
700 RAISE G_INCOMPATIBLE_API;
701 END IF;
702
703 l_user_id := FND_GLOBAL.user_id;
704 IF (l_user_id IS NULL) THEN
705 RAISE SESS_NOT_INITIALIZED;
706 END IF;
707
708 BEGIN
709 SELECT fndnam_link_name
710 INTO l_db_link
711 FROM cz_servers
712 WHERE import_enabled = '1';
713 EXCEPTION
714 WHEN TOO_MANY_ROWS THEN
715 RAISE TOO_MANY_IMP_SERVERS;
716 WHEN NO_DATA_FOUND THEN
717 RAISE NO_IMP_SERVERS;
718 END;
719
720 --Bug #4865395. Changing the probe query to be against cz_exv_item_properties which is
721 --much lighter view than cz_exv_organizations.
722
723 -- probe select --
724 BEGIN
725 EXECUTE IMMEDIATE
726 'SELECT ''Y'' FROM cz_exv_item_properties where rownum < 2'
727 INTO l_Exist;
728 EXCEPTION
729 WHEN NO_DATA_FOUND THEN
730 NULL;
731 END;
732
733
734 --
735 -- if cz_exv_item_properties is empty then
736 -- this means that EXV views were recreated based on local tables
737 -- with rownum<1 where condition
738 -- in this case try to recreate views based on remote tables if
739 -- db link is alive
740 --
741 IF l_Exist='N' THEN
745 -- not all EXV views have been recreated --
742 IF CZ_ORAAPPS_INTEGRATE.isLinkAlive(l_db_link)=CZ_ORAAPPS_INTEGRATE.LINK_WORKS THEN
743 l_err:=CZ_ORAAPPS_INTEGRATE.create_exv_views(l_db_link);
744 IF l_err<>'0' THEN
746 RAISE WRONG_EXV_VIEWS;
747 END IF;
748 ELSE
749 RAISE DB_LINK_IS_DOWN;
750 END IF;
751 END IF;
752
753
754 CZ_IMP_ALL.goSingleBill (p_org_id, p_top_inv_item_id, '0', -1, '0', x_run_id); -- sselahi: added x_run_id
755 x_status := G_STATUS_SUCCESS;
756
757
758 EXCEPTION
759 WHEN G_INCOMPATIBLE_API THEN
760 x_status := G_STATUS_ERROR;
761 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_API_VERSION_ERR', 'CODE_VERSION', l_api_version, 'IN_VERSION', p_api_version);
762 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
763 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
764 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
765 COMMIT;
766 WHEN SESS_NOT_INITIALIZED THEN
767 x_status := G_STATUS_ERROR;
768 l_errbuf := CZ_UTILS.GET_TEXT('CZ_SESS_NOT_INITIALIZED');
769 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
770 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
771 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
772 COMMIT;
773 WHEN TOO_MANY_IMP_SERVERS THEN
774 x_status := G_STATUS_ERROR;
775 l_errbuf := CZ_UTILS.GET_TEXT('CZ_IMP_TOO_MANY_SERVERS');
776 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
777 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
778 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
779 COMMIT;
780 WHEN NO_IMP_SERVERS THEN
781 x_status := G_STATUS_ERROR;
782 l_errbuf := CZ_UTILS.GET_TEXT('CZ_IMP_NO_SERVERS');
783 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
784 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
785 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
786 COMMIT;
787 WHEN WRONG_EXV_VIEWS THEN
788 x_status := G_STATUS_ERROR;
789 l_errbuf := 'Error : not all EXV views have been recreated successfully';
790 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
791 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
792 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
793 COMMIT;
794 WHEN DB_LINK_IS_DOWN THEN
795 x_status := G_STATUS_ERROR;
796 l_errbuf := CZ_UTILS.GET_TEXT('CZ_DB_LINK_IS_DOWN','DBLINK',l_db_link);
797 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
798 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
799 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
800 COMMIT;
801 WHEN CZ_ADMIN.IMP_MAXERR_REACHED THEN
802 x_status := G_STATUS_ERROR;
803 l_errbuf:=CZ_UTILS.GET_TEXT('CZ_IMP_MAXERR_REACHED');
804 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
805 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
806 COMMIT;
807 WHEN CZ_ADMIN.IMP_UNEXP_SQL_ERROR THEN
808 x_status := G_STATUS_ERROR;
809 l_errbuf := SQLERRM;
810 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
811 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
812 COMMIT;
813 WHEN OTHERS THEN
814 x_status := G_STATUS_ERROR;
815 l_errbuf := SQLERRM;
816 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_UNEXPECTED);
817 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
818 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
819 COMMIT;
820 END import_single_bill;
821 ------------------------------------------------------------------------------------------------
822 PROCEDURE import_single_bill(p_api_version IN NUMBER,
823 p_org_id IN NUMBER,
824 p_top_inv_item_id IN NUMBER,
825 p_user_id IN NUMBER,
826 p_resp_id IN NUMBER,
827 p_appl_id IN NUMBER,
828 x_run_id OUT NOCOPY NUMBER,
829 x_status OUT NOCOPY NUMBER)
830 IS
831 BEGIN
832 fnd_global.apps_initialize(p_user_id,p_resp_id,p_appl_id);
833 import_single_bill(p_api_version,
834 p_org_id,
835 p_top_inv_item_id,
836 x_run_id,
837 x_status);
838 END import_single_bill;
839 ---------------------------------------
840 PROCEDURE refresh_single_model(p_api_version IN NUMBER,
841 p_devl_project_id IN VARCHAR2,
842 x_run_id OUT NOCOPY NUMBER,
846 l_errbuf VARCHAR2(2000);
843 x_status OUT NOCOPY NUMBER) IS
844 l_api_name CONSTANT VARCHAR2(30) := 'refresh_single_model';
845 l_api_version CONSTANT NUMBER := 1.0;
847 l_found NUMBER;
848 l_db_link CZ_SERVERS.fndnam_link_name%TYPE;
849 l_Exist VARCHAR2(1):= 'N';
850 l_err VARCHAR2(1);
851 l_user_id NUMBER;
852 TOO_MANY_IMP_SERVERS EXCEPTION;
853 NO_IMP_SERVERS EXCEPTION;
854 WRONG_EXV_VIEWS EXCEPTION;
855 DB_LINK_IS_DOWN EXCEPTION;
856 PROJECT_ID_NOT_EXITS EXCEPTION;
857 SESS_NOT_INITIALIZED EXCEPTION;
858 lOrg_Id CZ_XFR_PROJECT_BILLS.ORGANIZATION_ID%TYPE;
859 lTop_Id CZ_XFR_PROJECT_BILLS.TOP_ITEM_ID%TYPE;
860
861 BEGIN
862
863 IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
864 RAISE G_INCOMPATIBLE_API;
865 END IF;
866 l_user_id := FND_GLOBAL.user_id;
867 IF (l_user_id IS NULL) THEN
868 RAISE SESS_NOT_INITIALIZED;
869 END IF;
870
871 -- verify p_devl_project_id
872 BEGIN
873 SELECT 1
874 INTO l_found
875 FROM cz_rp_entries
876 WHERE object_type = 'PRJ'
877 AND object_id = p_devl_project_id
878 AND deleted_flag = '0';
879 EXCEPTION
880 WHEN NO_DATA_FOUND THEN
881 RAISE PROJECT_ID_NOT_EXITS;
882 END;
883
884 -- get the org id and top model id
885 SELECT rtrim(substr(orig_sys_ref,instr(orig_sys_ref,':',1,1)+1,length(substr(orig_sys_ref,instr(orig_sys_ref,':',1,1)+1)) -
886 length(substr(orig_sys_ref,instr(orig_sys_ref,':',1,2))) )) ,
887 rtrim(substr(orig_sys_ref,instr(orig_sys_ref,':',1,2)+1))
888 INTO lOrg_Id, lTop_Id
889 FROM cz_devl_projects
890 WHERE devl_project_id = p_devl_project_id
891 AND deleted_flag = '0';
892
893 -- check the imp server
894 BEGIN
895 SELECT fndnam_link_name
896 INTO l_db_link
897 FROM cz_servers
898 WHERE import_enabled = '1';
899 EXCEPTION
900 WHEN TOO_MANY_ROWS THEN
901 RAISE TOO_MANY_IMP_SERVERS;
902 WHEN NO_DATA_FOUND THEN
903 RAISE NO_IMP_SERVERS;
904 END;
905
906 --Bug #4865395. Changing the probe query to be against cz_exv_item_properties which is
907 --much lighter view than cz_exv_organizations.
908
909 -- probe select --
910 BEGIN
911 EXECUTE IMMEDIATE
912 'SELECT ''Y'' FROM cz_exv_item_properties where rownum < 2'
913 INTO l_Exist;
914 EXCEPTION
915 WHEN NO_DATA_FOUND THEN
916 NULL;
917 END;
918 --
919 -- if cz_exv_item_properties is empty then
920 -- this means that EXV views were recreated based on local tables
921 -- with rownum<1 where condition
922 -- in this case try to recreate views based on remote tables if
923 -- db link is alive
924 --
925 IF l_Exist='N' THEN
926 IF CZ_ORAAPPS_INTEGRATE.isLinkAlive(l_db_link)=CZ_ORAAPPS_INTEGRATE.LINK_WORKS THEN
927 l_err:=CZ_ORAAPPS_INTEGRATE.create_exv_views(l_db_link);
928 IF l_err<>'0' THEN
929 -- not all EXV views have been recreated --
930 RAISE WRONG_EXV_VIEWS;
931 END IF;
932 ELSE
933 RAISE DB_LINK_IS_DOWN;
934 END IF;
935 END IF;
936
937 -- call the import
938 CZ_IMP_ALL.goSingleBill (lOrg_Id, lTop_Id, '0', -1, '0', x_run_id);
939 x_status := G_STATUS_SUCCESS;
940
941 EXCEPTION
942 WHEN G_INCOMPATIBLE_API THEN
943 x_status := G_STATUS_ERROR;
944 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_API_VERSION_ERR', 'CODE_VERSION', l_api_version, 'IN_VERSION', p_api_version);
945 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
946 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
947 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
948 COMMIT;
949 WHEN SESS_NOT_INITIALIZED THEN
950 x_status := G_STATUS_ERROR;
951 l_errbuf := CZ_UTILS.GET_TEXT('CZ_SESS_NOT_INITIALIZED');
952 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
953 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
954 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
955 COMMIT;
956 WHEN TOO_MANY_IMP_SERVERS THEN
957 x_status := G_STATUS_ERROR;
958 l_errbuf := CZ_UTILS.GET_TEXT('CZ_IMP_TOO_MANY_SERVERS');
959 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
960 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
961 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
962 COMMIT;
963 WHEN NO_IMP_SERVERS THEN
964 x_status := G_STATUS_ERROR;
965 l_errbuf := CZ_UTILS.GET_TEXT('CZ_IMP_NO_SERVERS');
966 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
967 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
968 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
969 COMMIT;
973 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
970 WHEN WRONG_EXV_VIEWS THEN
971 x_status := G_STATUS_ERROR;
972 l_errbuf := 'Error : not all EXV views have been recreated successfully';
974 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
975 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
976 COMMIT;
977 WHEN DB_LINK_IS_DOWN THEN
978 x_status := G_STATUS_ERROR;
979 l_errbuf := CZ_UTILS.GET_TEXT('CZ_DB_LINK_IS_DOWN','DBLINK',l_db_link);
980 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
981 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
982 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
983 COMMIT;
984 WHEN PROJECT_ID_NOT_EXITS THEN
985 x_status := G_STATUS_ERROR;
986 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_DEV_PRJ_ID_ERR', 'PROJID', p_devl_project_id);
987 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
988 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
989 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
990 COMMIT;
991 WHEN CZ_ADMIN.IMP_MAXERR_REACHED THEN
992 x_status := G_STATUS_ERROR;
993 l_errbuf:=CZ_UTILS.GET_TEXT('CZ_IMP_MAXERR_REACHED');
994 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
995 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
996 COMMIT;
997 WHEN CZ_ADMIN.IMP_UNEXP_SQL_ERROR THEN
998 x_status := G_STATUS_ERROR;
999 l_errbuf := SQLERRM;
1000 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1001 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
1002 COMMIT;
1003 WHEN OTHERS THEN
1004 x_status := G_STATUS_ERROR;
1005 l_errbuf := SQLERRM;
1006 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_UNEXPECTED);
1007 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1008 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
1009 COMMIT;
1010 end refresh_single_model;
1011 ------------------------------------------------------------------------------------------------
1012 PROCEDURE refresh_single_model(p_api_version IN NUMBER,
1013 p_devl_project_id IN VARCHAR2,
1014 p_user_id IN NUMBER,
1015 p_resp_id IN NUMBER,
1016 p_appl_id IN NUMBER,
1017 x_run_id OUT NOCOPY NUMBER,
1018 x_status OUT NOCOPY NUMBER)
1019 IS
1020 BEGIN
1021 fnd_global.apps_initialize(p_user_id,p_resp_id,p_appl_id);
1022 refresh_single_model(p_api_version,
1023 p_devl_project_id,
1024 x_run_id,
1025 x_status);
1026 END refresh_single_model;
1027
1028 -------------------------------------------------------------
1029 PROCEDURE publish_model(p_api_version IN NUMBER,
1030 p_publication_id IN NUMBER,
1031 x_run_id OUT NOCOPY NUMBER,
1032 x_status OUT NOCOPY NUMBER) IS
1033 l_api_name CONSTANT VARCHAR2(30) := 'publish_model';
1034 l_api_version CONSTANT NUMBER := 1.0;
1035 l_status VARCHAR2(3);
1036 l_errbuf VARCHAR2(2000);
1037
1038 BEGIN
1039 SELECT cz_xfr_run_infos_s.NEXTVAL INTO x_run_id FROM DUAL;
1040
1041 IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1042 RAISE G_INCOMPATIBLE_API;
1043 END IF;
1044
1045
1046 cz_pb_mgr.publish_model(p_publication_id, x_run_id, l_status);
1047
1048 IF l_status = 'OK' THEN
1049 x_status := G_STATUS_SUCCESS;
1050 ELSE
1051 x_status := G_STATUS_ERROR;
1052 END IF;
1053
1054 EXCEPTION
1055 WHEN G_INCOMPATIBLE_API THEN
1056 x_status := G_STATUS_ERROR;
1057 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_API_VERSION_ERR', 'CODE_VERSION', l_api_version, 'IN_VERSION', p_api_version);
1058 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
1059 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1060 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
1061 COMMIT;
1062 WHEN OTHERS THEN
1063 x_status := G_STATUS_ERROR;
1064 l_errbuf := SQLERRM;
1065 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_UNEXPECTED);
1066 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1067 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
1068 END publish_model;
1069 ------------------------------------------------------------------------------------------------
1070 PROCEDURE publish_model(p_api_version IN NUMBER,
1071 p_publication_id IN NUMBER,
1072 p_user_id IN NUMBER,
1073 p_resp_id IN NUMBER,
1074 p_appl_id IN NUMBER,
1075 x_run_id OUT NOCOPY NUMBER,
1079 publish_model(p_api_version,
1076 x_status OUT NOCOPY NUMBER) IS
1077 BEGIN
1078 fnd_global.apps_initialize(p_user_id,p_resp_id,p_appl_id);
1080 p_publication_id,
1081 x_run_id,
1082 x_status);
1083 END publish_model;
1084 --------------------------------------
1085 PROCEDURE deep_model_copy(p_api_version IN NUMBER,
1086 p_devl_project_id IN NUMBER,
1087 p_folder IN NUMBER,
1088 p_copy_rules IN NUMBER,
1089 p_copy_uis IN NUMBER,
1090 p_copy_root IN NUMBER,
1091 x_devl_project_id OUT NOCOPY NUMBER,
1092 x_run_id OUT NOCOPY NUMBER,
1093 x_status OUT NOCOPY NUMBER) IS
1094 l_api_name CONSTANT VARCHAR2(30) := 'deep_model_copy';
1095 l_api_version CONSTANT NUMBER := 1.0;
1096 l_status VARCHAR2(3);
1097 l_errbuf VARCHAR2(2000);
1098 l_found NUMBER;
1099 NOT_VALID_PROJECT_ID EXCEPTION;
1100
1101 BEGIN
1102 SELECT cz_xfr_run_infos_s.NEXTVAL INTO x_run_id FROM DUAL;
1103 IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1104 RAISE G_INCOMPATIBLE_API;
1105 END IF;
1106
1107 BEGIN
1108 SELECT 1
1109 INTO l_found
1110 FROM cz_rp_entries
1111 WHERE object_type = 'PRJ' AND object_id = p_devl_project_id AND deleted_flag = '0';
1112 EXCEPTION
1113 WHEN NO_DATA_FOUND THEN
1114 RAISE NOT_VALID_PROJECT_ID;
1115 END;
1116
1117 cz_pb_mgr.deep_model_copy(p_devl_project_id, 0, p_folder, p_copy_rules, p_copy_uis,
1118 p_copy_root, x_devl_project_id, x_run_id, l_status);
1119
1120 IF l_status = 'OK' THEN
1121 x_status := G_STATUS_SUCCESS;
1122 ELSE
1123 x_status := G_STATUS_ERROR;
1124 END IF;
1125
1126 EXCEPTION
1127 WHEN G_INCOMPATIBLE_API THEN
1128 x_status := G_STATUS_ERROR;
1129 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_API_VERSION_ERR', 'CODE_VERSION', l_api_version, 'IN_VERSION', p_api_version);
1130 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
1131 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1132 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
1133 COMMIT;
1134 WHEN NOT_VALID_PROJECT_ID THEN
1135 x_status := G_STATUS_ERROR;
1136 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_DEV_PRJ_ID_ERR', 'PROJID', p_devl_project_id);
1137 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
1138 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1139 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
1140 COMMIT;
1141 WHEN OTHERS THEN
1142 x_status := G_STATUS_ERROR;
1143 l_errbuf := SQLERRM;
1144 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_UNEXPECTED);
1145 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1146 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
1147 COMMIT;
1148 END deep_model_copy;
1149 ------------------------------------------------------------------------------------------------
1150 PROCEDURE deep_model_copy(p_api_version IN NUMBER,
1151 p_user_id IN NUMBER,
1152 p_resp_id IN NUMBER,
1153 p_appl_id IN NUMBER,
1154 p_devl_project_id IN NUMBER,
1155 p_folder IN NUMBER,
1156 p_copy_rules IN NUMBER,
1157 p_copy_uis IN NUMBER,
1158 p_copy_root IN NUMBER,
1159 x_devl_project_id OUT NOCOPY NUMBER,
1160 x_run_id OUT NOCOPY NUMBER,
1161 x_status OUT NOCOPY NUMBER) IS
1162
1163 BEGIN
1164 fnd_global.apps_initialize(p_user_id,p_resp_id,p_appl_id);
1165 deep_model_copy(p_api_version,
1166 p_devl_project_id,
1167 p_folder,
1168 p_copy_rules,
1169 p_copy_uis,
1170 p_copy_root,
1171 x_devl_project_id,
1172 x_run_id,
1173 x_status);
1174 END deep_model_copy;
1175
1176 -----------------------------------------------------------------
1177 PROCEDURE execute_populator(p_api_version IN NUMBER,
1178 p_populator_id IN NUMBER,
1179 p_imp_run_id IN OUT NOCOPY VARCHAR2,
1180 x_run_id OUT NOCOPY NUMBER,
1181 x_status OUT NOCOPY NUMBER) IS
1182 l_api_name CONSTANT VARCHAR2(30) := 'execute_populator';
1183 l_api_version CONSTANT NUMBER := 1.0;
1184 l_errbuf VARCHAR2(2000);
1185 l_found NUMBER;
1186 NOT_VALID_POPULATOR_ID EXCEPTION;
1187
1188 BEGIN
1189 SAVEPOINT execute_populator_PUB;
1190
1191 SELECT cz_xfr_run_infos_s.NEXTVAL INTO x_run_id FROM DUAL;
1195
1192 IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1193 RAISE G_INCOMPATIBLE_API;
1194 END IF;
1196 BEGIN
1197 SELECT NULL
1198 INTO l_found
1199 FROM cz_populators
1200 WHERE populator_id = p_populator_id AND deleted_flag = '0';
1201 EXCEPTION
1202 WHEN NO_DATA_FOUND THEN
1203 RAISE NOT_VALID_POPULATOR_ID;
1204 END;
1205
1206 cz_populators_pkg.execute(p_populator_id, p_imp_run_id, x_run_id);
1207 IF x_run_id = 0 THEN
1208 x_status := G_STATUS_SUCCESS;
1209 COMMIT WORK;
1210 ELSE
1211 x_status := G_STATUS_ERROR;
1212 ROLLBACK TO execute_populator_PUB;
1213 END IF;
1214
1215 EXCEPTION
1216 WHEN G_INCOMPATIBLE_API THEN
1217 x_status := G_STATUS_ERROR;
1218 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_API_VERSION_ERR', 'CODE_VERSION', l_api_version, 'IN_VERSION', p_api_version);
1219 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
1220 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1221 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
1222 COMMIT;
1223 WHEN NOT_VALID_POPULATOR_ID THEN
1224 x_status := G_STATUS_ERROR;
1225 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_POPULATOR_ID_ERR');
1226 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
1227 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1228 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
1229 COMMIT;
1230 WHEN OTHERS THEN
1231 x_status := G_STATUS_ERROR;
1232 ROLLBACK TO execute_populator_PUB;
1233 l_errbuf := SQLERRM;
1234 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_UNEXPECTED);
1235 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1236 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
1237 COMMIT;
1238 END execute_populator;
1239
1240 ------------------------------------------------------------------------------------------------
1241 PROCEDURE execute_populator(p_api_version IN NUMBER,
1242 p_user_id IN NUMBER,
1243 p_resp_id IN NUMBER,
1244 p_appl_id IN NUMBER,
1245 p_populator_id IN NUMBER,
1246 p_imp_run_id IN OUT NOCOPY VARCHAR2,
1247 x_run_id OUT NOCOPY NUMBER,
1248 x_status OUT NOCOPY NUMBER) IS
1249 BEGIN
1250 fnd_global.apps_initialize(p_user_id,p_resp_id,p_appl_id);
1251 execute_populator(p_api_version,
1252 p_populator_id,
1253 p_imp_run_id,
1254 x_run_id,
1255 x_status);
1256 END execute_populator;
1257
1258 -------------------------------------------------
1259 PROCEDURE repopulate(p_api_version IN NUMBER,
1260 p_devl_project_id IN NUMBER,
1261 p_regenerate_all IN VARCHAR2 , -- DEFAULT '1',
1262 p_handle_invalid IN VARCHAR2 , -- DEFAULT '1',
1263 p_handle_broken IN VARCHAR2 , -- DEFAULT '1',
1264 x_run_id OUT NOCOPY NUMBER,
1265 x_status OUT NOCOPY NUMBER) IS
1266 l_api_name CONSTANT VARCHAR2(30) := 'repopulate';
1267 l_api_version CONSTANT NUMBER := 1.0;
1268 l_errbuf VARCHAR2(2000);
1269 l_found NUMBER;
1270 NOT_VALID_PROJECT_ID EXCEPTION;
1271
1272 BEGIN
1273 SAVEPOINT repopulate_PUB;
1274
1275 SELECT cz_xfr_run_infos_s.NEXTVAL INTO x_run_id FROM DUAL;
1276 IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1277 RAISE G_INCOMPATIBLE_API;
1278 END IF;
1279
1280 BEGIN
1281 SELECT 1
1282 INTO l_found
1283 FROM cz_rp_entries
1284 WHERE object_type = 'PRJ' AND object_id = p_devl_project_id AND deleted_flag = '0';
1285 EXCEPTION
1286 WHEN NO_DATA_FOUND THEN
1287 RAISE NOT_VALID_PROJECT_ID;
1288 END;
1289
1290 cz_populators_pkg.repopulate(p_devl_project_id, p_regenerate_all, p_handle_invalid, p_handle_broken, x_run_id);
1291 IF x_run_id = 0 THEN
1292 x_status := G_STATUS_SUCCESS;
1293 COMMIT WORK;
1294 ELSE
1295 x_status := G_STATUS_ERROR;
1296 ROLLBACK TO repopulate_PUB;
1297 END IF;
1298
1299 EXCEPTION
1300 WHEN G_INCOMPATIBLE_API THEN
1301 x_status := G_STATUS_ERROR;
1302 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_API_VERSION_ERR', 'CODE_VERSION', l_api_version, 'IN_VERSION', p_api_version);
1303 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
1304 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1305 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
1306 COMMIT;
1307 WHEN NOT_VALID_PROJECT_ID THEN
1308 x_status := G_STATUS_ERROR;
1309 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_DEV_PRJ_ID_ERR', 'PROJID', p_devl_project_id);
1310 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
1311 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1315 x_status := G_STATUS_ERROR;
1312 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
1313 COMMIT;
1314 WHEN OTHERS THEN
1316 ROLLBACK TO repopulate_PUB;
1317 l_errbuf := SQLERRM;
1318 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_UNEXPECTED);
1319 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1320 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
1321 COMMIT;
1322 END repopulate;
1323 ------------------------------------------------------------------------------------------------
1324 PROCEDURE repopulate(p_api_version IN NUMBER,
1325 p_devl_project_id IN NUMBER,
1326 p_user_id IN NUMBER,
1327 p_resp_id IN NUMBER,
1328 p_appl_id IN NUMBER,
1329 p_regenerate_all IN VARCHAR2 , -- DEFAULT '1',
1330 p_handle_invalid IN VARCHAR2 , -- DEFAULT '1',
1331 p_handle_broken IN VARCHAR2 , -- DEFAULT '1',
1332 x_run_id OUT NOCOPY NUMBER,
1333 x_status OUT NOCOPY NUMBER) IS
1334 BEGIN
1335 fnd_global.apps_initialize(p_user_id,p_resp_id,p_appl_id);
1336 repopulate(p_api_version,
1337 p_devl_project_id,
1338 p_user_id ,
1339 p_resp_id ,
1340 p_appl_id ,
1341 p_regenerate_all ,
1342 p_handle_invalid ,
1343 p_handle_broken ,
1344 x_run_id ,
1345 x_status );
1346 END repopulate;
1347
1348 ---------------------------------------------------------
1349 PROCEDURE republish_model(p_api_version IN NUMBER,
1350 p_publication_id IN NUMBER,
1351 p_start_date IN DATE,
1352 p_end_date IN DATE,
1353 x_run_id OUT NOCOPY NUMBER,
1354 x_status OUT NOCOPY NUMBER) IS
1355 l_api_name CONSTANT VARCHAR2(30) := 'republish_model';
1356 l_api_version CONSTANT NUMBER := 1.0;
1357 l_status VARCHAR2(3);
1358 l_errbuf VARCHAR2(2000);
1359 l_start_date DATE;
1360 l_end_date DATE;
1361 l_publication_id NUMBER;
1362 BEGIN
1363 SELECT cz_xfr_run_infos_s.NEXTVAL INTO x_run_id FROM DUAL;
1364
1365 IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1366 RAISE G_INCOMPATIBLE_API;
1367 END IF;
1368
1369 l_start_date := p_start_date;
1370 l_end_date := p_end_date;
1371 l_publication_id := p_publication_id;
1372 cz_pb_mgr.republish_model(l_publication_id,l_start_date,l_end_date,x_run_id,l_status);
1373
1374 IF l_status = 'OK' THEN
1375 x_status := G_STATUS_SUCCESS;
1376 ELSE
1377 x_status := G_STATUS_ERROR;
1378 END IF;
1379
1380 EXCEPTION
1381 WHEN G_INCOMPATIBLE_API THEN
1382 x_status := G_STATUS_ERROR;
1383 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_API_VERSION_ERR', 'CODE_VERSION', l_api_version, 'IN_VERSION', p_api_version);
1384 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
1385 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1386 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
1387 COMMIT;
1388 WHEN OTHERS THEN
1389 x_status := G_STATUS_ERROR;
1390 l_errbuf := SQLERRM;
1391 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_UNEXPECTED);
1392 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1393 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
1394 END republish_model;
1395 ---------------------------------------------------------
1396 PROCEDURE republish_model(p_api_version IN NUMBER,
1397 p_publication_id IN NUMBER,
1398 p_user_id IN NUMBER,
1399 p_resp_id IN NUMBER,
1400 p_appl_id IN NUMBER,
1401 p_start_date IN DATE,
1402 p_end_date IN DATE,
1403 x_run_id OUT NOCOPY NUMBER,
1404 x_status OUT NOCOPY NUMBER)
1405 IS
1406 BEGIN
1407 fnd_global.apps_initialize(p_user_id,p_resp_id,p_appl_id);
1408 republish_model(p_api_version,
1409 p_publication_id,
1410 p_start_date,
1411 p_end_date,
1412 x_run_id,
1413 x_status);
1414 END republish_model;
1415 ------------------------------------------------------------------------------------------------
1416 FUNCTION rp_folder_exists (p_api_version IN NUMBER,
1417 p_encl_folder_id IN NUMBER,
1418 p_rp_folder_id IN NUMBER) RETURN BOOLEAN IS
1419
1420 l_api_name CONSTANT VARCHAR2(30) := 'rp_folder_exists';
1421 l_api_version CONSTANT NUMBER := 1.0;
1422
1423 -- cursor to check the enclosing folder when it is not null
1424 CURSOR encl_folder_exits_csr IS
1425 SELECT 'X'
1429 AND deleted_flag = '0';
1426 FROM cz_rp_entries
1427 WHERE object_id = p_encl_folder_id
1428 AND object_type = 'FLD'
1430
1431 -- cursor to check the folder when encl folder is not null
1432 CURSOR folder_exists_in_encl_csr IS
1433 SELECT 'X'
1434 FROM cz_rp_entries
1435 WHERE object_id = p_rp_folder_id
1436 AND enclosing_folder = p_encl_folder_id
1437 AND object_type = 'FLD'
1438 AND deleted_flag = '0';
1439
1440 -- cursor to check the folder when enclosing folder is null
1441 CURSOR folder_exists_csr IS
1442 SELECT 'X'
1443 FROM cz_rp_entries
1444 WHERE object_id = p_rp_folder_id
1445 AND object_type = 'FLD'
1446 AND deleted_flag = '0';
1447
1448 x_found BOOLEAN:=FALSE;
1449 p_error_flag CHAR(1):='';
1450 x_msg_data VARCHAR2(2000);
1451 l_dummy_nbr NUMBER;
1452
1453 BEGIN
1454 IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1455 RAISE G_INCOMPATIBLE_API;
1456 END IF;
1457
1458 IF p_encl_folder_id IS NOT NULL THEN
1459 -- first check if enclosing folder exists
1460 OPEN encl_folder_exits_csr;
1461 FETCH encl_folder_exits_csr INTO p_error_flag;
1462 x_found:=encl_folder_exits_csr%FOUND;
1463 CLOSE encl_folder_exits_csr;
1464
1465 IF NOT x_found THEN
1466 RETURN x_found;
1467 END IF;
1468
1469 -- now check if the folder exists
1470 OPEN folder_exists_in_encl_csr;
1471 FETCH folder_exists_in_encl_csr INTO p_error_flag;
1472 x_found:=folder_exists_in_encl_csr%FOUND;
1473 CLOSE folder_exists_in_encl_csr;
1474 ELSE
1475 -- check if folder exists anywhere
1476 OPEN folder_exists_csr;
1477 FETCH folder_exists_csr INTO p_error_flag;
1478 x_found:=folder_exists_csr%FOUND;
1479 CLOSE folder_exists_csr;
1480 END IF;
1481
1482 RETURN x_found;
1483
1484 EXCEPTION
1485 WHEN G_INCOMPATIBLE_API THEN
1486 RAISE G_INCOMPATIBLE_API;
1487 WHEN OTHERS THEN
1488 RAISE FND_API.G_EXC_ERROR;
1489 END rp_folder_exists;
1490 ---------------------------------------------------------
1491 FUNCTION rp_folder_exists (
1492 p_api_version IN NUMBER,
1493 p_encl_folder_id IN NUMBER,
1494 p_rp_folder_id IN NUMBER,
1495 p_user_id IN NUMBER,
1496 p_resp_id IN NUMBER,
1497 p_appl_id IN NUMBER
1498 ) RETURN BOOLEAN IS
1499 BEGIN
1500 fnd_global.apps_initialize (
1501 p_user_id,
1502 p_resp_id,
1503 p_appl_id
1504 );
1505 return rp_folder_exists (
1506 p_api_version,
1507 p_encl_folder_id,
1508 p_rp_folder_id
1509 );
1510 END rp_folder_exists;
1511 ---------------------------------------------------------
1512 PROCEDURE create_rp_folder(p_api_version IN NUMBER
1513 ,p_encl_folder_id IN CZ_RP_ENTRIES.OBJECT_ID%TYPE
1514 ,p_new_folder_name IN CZ_RP_ENTRIES.NAME%TYPE
1515 ,p_folder_desc IN CZ_RP_ENTRIES.DESCRIPTION%TYPE
1516 ,p_folder_notes IN CZ_RP_ENTRIES.NOTES%TYPE
1517 ,x_new_folder_id OUT NOCOPY CZ_RP_ENTRIES.OBJECT_ID%TYPE
1518 ,x_return_status OUT NOCOPY VARCHAR2
1519 ,x_msg_count OUT NOCOPY NUMBER
1520 ,x_msg_data OUT NOCOPY VARCHAR2
1521 )
1522 IS
1523
1524 l_api_version CONSTANT NUMBER := 1.0;
1525 l_api_name CONSTANT VARCHAR2(30) := 'create_rp_folder';
1526
1527 l_new_object_id CZ_RP_ENTRIES.OBJECT_ID%TYPE;
1528 l_dummy_nbr NUMBER;
1529 l_count NUMBER;
1530
1531 BEGIN
1532 -- standard call to check for call compatibility
1533 IF (NOT FND_API.compatible_api_call(l_api_version
1534 ,p_api_version
1535 ,l_api_name
1536 ,G_PKG_NAME
1537 )) THEN
1538 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1539 END IF;
1540
1541 BEGIN -- validate the encl_folder_id
1542 SELECT 1 INTO l_dummy_nbr
1543 FROM cz_rp_entries
1544 WHERE object_id = p_encl_folder_id
1545 AND object_type = 'FLD'
1546 AND deleted_flag = '0';
1547 EXCEPTION
1548 WHEN NO_DATA_FOUND THEN
1549 x_msg_data := CZ_UTILS.GET_TEXT('CZ_RP_FLDR_NO_ENCL_FLDR');
1550 RAISE FND_API.G_EXC_ERROR;
1551 END;
1552
1553 BEGIN -- check if folder already exists, if so return its id
1554 SELECT object_id INTO x_new_folder_id
1555 FROM cz_rp_entries
1556 WHERE name = p_new_folder_name
1557 AND enclosing_folder = p_encl_folder_id
1558 AND object_type = 'FLD'
1559 AND deleted_flag = '0';
1560
1561 EXCEPTION -- it doesn't exists, so create it
1562 WHEN NO_DATA_FOUND THEN
1563
1564 SELECT cz_rp_entries_s.NEXTVAL
1565 INTO l_new_object_id
1566 FROM DUAL;
1567
1568 INSERT INTO cz_rp_entries
1569 (object_id
1570 ,name
1571 ,object_type
1572 ,enclosing_folder
1576 VALUES
1573 ,description
1574 ,notes
1575 )
1577 (l_new_object_id
1578 ,p_new_folder_name
1579 ,'FLD'
1580 ,p_encl_folder_id
1581 ,p_folder_desc
1582 ,p_folder_notes
1583 );
1584 COMMIT;
1585 x_new_folder_id := l_new_object_id;
1586 END;
1587
1588 x_return_status := FND_API.G_RET_STS_SUCCESS;
1589
1590 EXCEPTION
1591 WHEN FND_API.G_EXC_ERROR THEN
1592 x_return_status := FND_API.G_RET_STS_ERROR;
1593 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1594 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1595 fnd_msg_pub.count_and_get(p_count => x_msg_count,
1596 p_data => x_msg_data);
1597 WHEN OTHERS THEN
1598 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1599 IF fnd_msg_pub.check_msg_Level(fnd_msg_pub.G_MSG_LVL_UNEXP_ERROR) THEN
1600 fnd_msg_pub.add_exc_msg(G_PKG_NAME, l_api_name);
1601 END IF;
1602 fnd_msg_pub.count_and_get(p_count => x_msg_count,
1603 p_data => x_msg_data);
1604 END create_rp_folder;
1605 ---------------------------------------------------------
1606 PROCEDURE create_rp_folder (
1607 p_api_version IN NUMBER,
1608 p_encl_folder_id IN CZ_RP_ENTRIES.OBJECT_ID%TYPE,
1609 p_new_folder_name IN CZ_RP_ENTRIES.NAME%TYPE,
1610 p_folder_desc IN CZ_RP_ENTRIES.DESCRIPTION%TYPE,
1611 p_folder_notes IN CZ_RP_ENTRIES.NOTES%TYPE,
1612 p_user_id IN NUMBER,
1613 p_resp_id IN NUMBER,
1614 p_appl_id IN NUMBER,
1615 x_new_folder_id OUT NOCOPY CZ_RP_ENTRIES.OBJECT_ID%TYPE,
1616 x_return_status OUT NOCOPY VARCHAR2,
1617 x_msg_count OUT NOCOPY NUMBER,
1618 x_msg_data OUT NOCOPY VARCHAR2
1619 ) IS
1620 BEGIN
1621 fnd_global.apps_initialize (
1622 p_user_id,
1623 p_resp_id,
1624 p_appl_id
1625 );
1626 create_rp_folder (
1627 p_api_version,
1628 p_encl_folder_id,
1629 p_new_folder_name,
1630 p_folder_desc,
1631 p_folder_notes,
1632 x_new_folder_id,
1633 x_return_status,
1634 x_msg_count,
1635 x_msg_data
1636 );
1637 END create_rp_folder;
1638 ---------------------------------------------------------
1639 PROCEDURE import_generic(p_api_version IN NUMBER
1640 ,p_run_id IN NUMBER
1641 ,p_rp_folder_id IN NUMBER
1642 ,x_run_id OUT NOCOPY NUMBER
1643 ,x_status OUT NOCOPY NUMBER)
1644 IS
1645 l_api_name CONSTANT VARCHAR2(30) := 'import_generic';
1646 l_api_version CONSTANT NUMBER := 1.0;
1647 TYPE boolean_t IS TABLE OF BOOLEAN index by BINARY_INTEGER;
1648 l_dummy_nbr NUMBER;
1649 l_msg_data VARCHAR2(2000);
1650 l_msg_count NUMBER := 0;
1651 l_return_status VARCHAR2(1);
1652 l_locked_models_tbl cz_security_pvt.number_type_tbl;
1653 l_model_id_tbl cz_security_pvt.number_type_tbl;
1654 l_devl_prj_id_tbl cz_security_pvt.number_type_tbl;
1655 l_all_locked_models_tbl cz_security_pvt.number_type_tbl;
1656
1657 NO_PRIV_EXCP EXCEPTION;
1658 PRIV_CHECK_ERR_EXP EXCEPTION;
1659 FAILED_TO_LOCK_MODEL_EXCP EXCEPTION;
1660 MODEL_NOT_EDITABLE EXCEPTION;
1661 MODEL_LOCKED_EXCP EXCEPTION;
1662 MODEL_UNLOCK_EXCP EXCEPTION;
1663 INVALID_ENCL_FLDR_EXCP EXCEPTION;
1664 SESS_NOT_INITIALIZED_EXCP EXCEPTION;
1665
1666 xERROR BOOLEAN:=FALSE;
1667 l_user_name varchar2(255);
1668 l_user_id NUMBER;
1669 l_is_new_model BOOLEAN;
1670
1671 -- model ids before calling generic import
1672 CURSOR l_imp_devl_project_csr IS
1673 SELECT nvl(model_id,0)
1674 FROM CZ_IMP_DEVL_PROJECT
1675 WHERE rec_status IS NULL AND Run_ID = p_run_id;
1676
1677 -- devl projects after after calling generic import
1678 CURSOR l_imp_devl_project_csr_2 IS
1679 SELECT nvl(model_id,0), nvl(devl_project_id,0)
1680 FROM CZ_IMP_DEVL_PROJECT
1681 WHERE rec_status IS NOT NULL AND Run_ID = x_run_id;
1682
1683 BEGIN
1684
1685 IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1686 RAISE G_INCOMPATIBLE_API;
1687 END IF;
1688
1689 l_user_id := FND_GLOBAL.user_id;
1690 l_user_name := FND_GLOBAL.user_name;
1691 IF (l_user_name IS NULL) THEN
1692 RAISE SESS_NOT_INITIALIZED_EXCP;
1693 END IF;
1694
1695 BEGIN -- validate the encl_folder_id
1696 SELECT 1 INTO l_dummy_nbr
1697 FROM cz_rp_entries
1698 WHERE object_id = p_rp_folder_id
1699 AND object_type = 'FLD'
1700 AND deleted_flag = '0';
1701 EXCEPTION
1702 WHEN NO_DATA_FOUND THEN
1703 l_msg_count := 1;
1704 l_msg_data := cz_utils.get_text('CZ_IMPGEN_ENCL_FLDR');
1705 RAISE INVALID_ENCL_FLDR_EXCP;
1706 END;
1707
1708 l_model_id_tbl.DELETE;
1709 l_all_locked_models_tbl.DELETE;
1710 OPEN l_imp_devl_project_csr;
1711 FETCH l_imp_devl_project_csr
1712 BULK COLLECT INTO l_model_id_tbl;
1713 CLOSE l_imp_devl_project_csr;
1717 IF (l_model_id_tbl.COUNT > 0) THEN
1714
1715 -- shallow lock each model because we don't know model relationships
1716
1718 FOR i IN l_model_id_tbl.FIRST..l_model_id_tbl.LAST LOOP
1719 IF (l_model_id_tbl(i) <> 0) THEN
1720 l_locked_models_tbl.DELETE;
1721 cz_security_pvt.lock_model(
1722 p_api_version => 1.0,
1723 p_model_id => l_model_id_tbl(i),
1724 p_lock_child_models => FND_API.G_FALSE,
1725 p_commit_flag => FND_API.G_TRUE,
1726 x_locked_entities => l_locked_models_tbl,
1727 x_return_status => l_return_status,
1728 x_msg_count => l_msg_count,
1729 x_msg_data => l_msg_data);
1730 IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1731 FOR k IN 1..l_msg_count LOOP
1732 l_msg_data := fnd_msg_pub.get(k,fnd_api.g_false);
1733 xERROR:=cz_utils.log_report(l_msg_data,1,'CZ_MODELOPERATIONS_PUB.IMPORT_GENERIC',20001,p_run_id);
1734 COMMIT;
1735 END LOOP;
1736 RAISE FAILED_TO_LOCK_MODEL_EXCP;
1737 END IF;
1738 IF ( l_locked_models_tbl.COUNT > 0 ) THEN
1739 FOR j IN l_locked_models_tbl.FIRST..l_locked_models_tbl.LAST LOOP
1740 l_all_locked_models_tbl(l_all_locked_models_tbl.COUNT + 1) := l_locked_models_tbl(j);
1741 END LOOP;
1742 END IF;
1743 END IF;
1744 END LOOP;
1745 END IF;
1746
1747 -- call go_generic
1748
1749 CZ_IMP_ALL.go_generic(x_run_id, p_run_id, p_rp_folder_id);
1750 x_status := G_STATUS_SUCCESS;
1751
1752 IF (l_all_locked_models_tbl.COUNT > 0) THEN
1753 cz_security_pvt.unlock_model(
1754 p_api_version => 1.0,
1755 p_commit_flag => FND_API.G_TRUE,
1756 p_models_to_unlock => l_all_locked_models_tbl,
1757 x_return_status => l_return_status,
1758 x_msg_count => l_msg_count,
1759 x_msg_data => l_msg_data);
1760 END IF;
1761
1762 EXCEPTION
1763 WHEN G_INCOMPATIBLE_API THEN
1764 x_status := G_STATUS_ERROR;
1765 l_msg_data := CZ_UTILS.GET_TEXT('CZ_MOP_API_VERSION_ERR', 'CODE_VERSION', l_api_version, 'IN_VERSION', p_api_version);
1766 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_msg_data, fnd_log.LEVEL_ERROR);
1767 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1768 VALUES (l_msg_data, 11276, G_PKG_NAME||'.'||l_api_name, 1, p_run_id, SYSDATE);
1769 COMMIT;
1770 WHEN SESS_NOT_INITIALIZED_EXCP THEN
1771 x_status := G_STATUS_ERROR;
1772 l_msg_data := CZ_UTILS.GET_TEXT('CZ_SESS_NOT_INITIALIZED');
1773 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_msg_data, fnd_log.LEVEL_ERROR);
1774 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1775 VALUES (l_msg_data, 11276, G_PKG_NAME||'.'||l_api_name, 1, p_run_id, SYSDATE);
1776 COMMIT;
1777 WHEN INVALID_ENCL_FLDR_EXCP THEN
1778 x_status := G_STATUS_ERROR;
1779 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_msg_data, fnd_log.LEVEL_ERROR);
1780 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1781 VALUES (l_msg_data, 11276, G_PKG_NAME||'.'||l_api_name, 1, p_run_id, SYSDATE);
1782 COMMIT;
1783 WHEN NO_PRIV_EXCP THEN
1784 x_status := G_STATUS_ERROR;
1785 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_msg_data, fnd_log.LEVEL_ERROR);
1786 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1787 VALUES (l_msg_data, 11276, G_PKG_NAME||'.'||l_api_name, 1, p_run_id, SYSDATE);
1788 COMMIT;
1789 WHEN MODEL_LOCKED_EXCP THEN
1790 x_status := G_STATUS_ERROR;
1791 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_msg_data, fnd_log.LEVEL_ERROR);
1792 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1793 VALUES (l_msg_data, 11276, G_PKG_NAME||'.'||l_api_name, 1, p_run_id, SYSDATE);
1794 COMMIT;
1795 WHEN FAILED_TO_LOCK_MODEL_EXCP THEN
1796 x_status := G_STATUS_ERROR;
1797 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_msg_data, fnd_log.LEVEL_ERROR);
1798 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1799 VALUES (l_msg_data, 11276, G_PKG_NAME||'.'||l_api_name, 1, p_run_id, SYSDATE);
1800 COMMIT;
1801 WHEN MODEL_UNLOCK_EXCP THEN
1802 x_status := G_STATUS_ERROR;
1803 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_msg_data, fnd_log.LEVEL_ERROR);
1804 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1805 VALUES (l_msg_data, 11276, G_PKG_NAME||'.'||l_api_name, 1, p_run_id, SYSDATE);
1806 COMMIT;
1807 WHEN OTHERS THEN
1808 x_status := G_STATUS_ERROR;
1809 l_msg_data := SQLERRM;
1810 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_msg_data, fnd_log.LEVEL_UNEXPECTED);
1811 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1812 VALUES (l_msg_data, 11276, G_PKG_NAME||'.'||l_api_name, 1, p_run_id, SYSDATE);
1813 COMMIT;
1814 IF (l_all_locked_models_tbl.COUNT > 0) THEN
1815 cz_security_pvt.unlock_model(
1819 x_return_status => l_return_status,
1816 p_api_version => 1.0,
1817 p_commit_flag => FND_API.G_TRUE,
1818 p_models_to_unlock => l_all_locked_models_tbl,
1820 x_msg_count => l_msg_count,
1821 x_msg_data => l_msg_data);
1822 END IF;
1823 END import_generic;
1824 -----------------------------------------------------------
1825 PROCEDURE import_generic (
1826 p_api_version IN NUMBER,
1827 p_run_id IN NUMBER,
1828 p_rp_folder_id IN NUMBER,
1829 p_user_id IN NUMBER,
1830 p_resp_id IN NUMBER,
1831 p_appl_id IN NUMBER,
1832 x_run_id OUT NOCOPY NUMBER,
1833 x_status OUT NOCOPY NUMBER
1834 ) IS
1835 BEGIN
1836 fnd_global.apps_initialize (
1837 p_user_id,
1838 p_resp_id,
1839 p_appl_id
1840 );
1841 import_generic (
1842 p_api_version,
1843 p_run_id,
1844 p_rp_folder_id,
1845 x_run_id,
1846 x_status
1847 );
1848 END import_generic;
1849 -----------------------------------------------------------
1850 /*#
1851 * This is the public interface for force unlock operations on a model in Oracle Configurator
1852 * @param p_api_version Current version of the API is 1.0
1853 * @param p_model_id devl_project_id of the model from cz_devl_projects table
1854 * @param p_unlock_references A value of FND_API.G_TRUE indicates that the child models if any should be
1855 * force unlocked. A value of FND_API.G_FALSE indicates that only the root model
1856 * will be unlocked
1857 * @param p_init_msg_list FND_API.G_TRUE if the API should initialize the FND stack, FND_API.G_FALSE if not.
1858 * @param x_return_status standard FND status. (ex:FND_API.G_RET_STS_SUCCESS )
1859 * @param x_msg_count number of messages on the stack.
1860 * @param x_msg_data standard FND OUT parameter for message. Messages are written to the FND error stack
1861 * @rep:scope public
1862 * @rep:product CZ
1863 * @rep:displayname API for working with force unlock operations on a model
1864 * @rep:lifecycle active
1865 * @rep:compatibility S
1866 * @rep:category BUSINESS_ENTITY CZ_CONFIG_MODEL
1867 */
1868
1869 PROCEDURE force_unlock_model (p_api_version IN NUMBER,
1870 p_model_id IN NUMBER,
1871 p_unlock_references IN VARCHAR2,
1872 p_init_msg_list IN VARCHAR2,
1873 x_return_status OUT NOCOPY VARCHAR2,
1874 x_msg_count OUT NOCOPY NUMBER,
1875 x_msg_data OUT NOCOPY VARCHAR2)
1876 IS
1877
1878 BEGIN
1879 cz_security_pvt.force_unlock_model (p_api_version,
1880 p_model_id,
1881 p_unlock_references,
1882 p_init_msg_list,
1883 x_return_status,
1884 x_msg_count,
1885 x_msg_data);
1886 END force_unlock_model;
1887 ---------------------------------------------------
1888 PROCEDURE force_unlock_model (
1889 p_api_version IN NUMBER,
1890 p_model_id IN NUMBER,
1891 p_unlock_references IN VARCHAR2,
1892 p_init_msg_list IN VARCHAR2,
1893 p_user_id IN NUMBER,
1894 p_resp_id IN NUMBER,
1895 p_appl_id IN NUMBER,
1896 x_return_status OUT NOCOPY VARCHAR2,
1897 x_msg_count OUT NOCOPY NUMBER,
1898 x_msg_data OUT NOCOPY VARCHAR2
1899 ) IS
1900 BEGIN
1901 fnd_global.apps_initialize (
1902 p_user_id,
1903 p_resp_id,
1904 p_appl_id
1905 );
1906 force_unlock_model (
1907 p_api_version,
1908 p_model_id,
1909 p_unlock_references,
1910 p_init_msg_list,
1911 x_return_status,
1912 x_msg_count,
1913 x_msg_data
1914 );
1915 END force_unlock_model;
1916 ---------------------------------------------------
1917 /*#
1918 * This is the public interface for force unlock operations on a UI content template in Oracle Configurator
1919 * @param p_api_version Current version of the API is 1.0
1920 * @param p_template_id Template_id of the template from cz_ui_templates table
1921 * @param p_init_msg_list FND_API.G_TRUE if the API should initialize the FND stack, FND_API.G_FALSE if not.
1922 * @param x_return_status standard FND status. (ex:FND_API.G_RET_STS_SUCCESS )
1923 * @param x_msg_count number of messages on the stack.
1924 * @param x_msg_data standard FND OUT parameter for message. Messages are written to the FND error stack
1925 * @rep:scope public
1926 * @rep:product CZ
1927 * @rep:displayname API for working with force unlock operations on a UI content template
1928 * @rep:lifecycle active
1929 * @rep:compatibility S
1930 * @rep:category BUSINESS_ENTITY CZ_USER_INTERFACE*/
1931
1932 PROCEDURE force_unlock_template (p_api_version IN NUMBER,
1933 p_template_id IN NUMBER,
1934 p_init_msg_list IN VARCHAR2,
1935 x_return_status OUT NOCOPY VARCHAR2,
1936 x_msg_count OUT NOCOPY NUMBER,
1937 x_msg_data OUT NOCOPY VARCHAR2)
1938 IS
1942 p_template_id,
1939
1940 BEGIN
1941 cz_security_pvt.force_unlock_template (p_api_version,
1943 p_init_msg_list,
1944 x_return_status,
1945 x_msg_count,
1946 x_msg_data);
1947 END force_unlock_template;
1948 ---------------------------------------------------
1949 PROCEDURE force_unlock_template (
1950 p_api_version IN NUMBER,
1951 p_template_id IN NUMBER,
1952 p_init_msg_list IN VARCHAR2,
1953 p_user_id IN NUMBER,
1954 p_resp_id IN NUMBER,
1955 p_appl_id IN NUMBER,
1956 x_return_status OUT NOCOPY VARCHAR2,
1957 x_msg_count OUT NOCOPY NUMBER,
1958 x_msg_data OUT NOCOPY VARCHAR2
1959 ) IS
1960 BEGIN
1961 fnd_global.apps_initialize (
1962 p_user_id,
1963 p_resp_id,
1964 p_appl_id
1965 );
1966 force_unlock_template (
1967 p_api_version,
1968 p_template_id,
1969 p_init_msg_list,
1970 x_return_status,
1971 x_msg_count,
1972 x_msg_data
1973 );
1974 END force_unlock_template;
1975
1976 FUNCTION usage_id_from_usage_name (p_api_version IN NUMBER
1977 ,p_usage_name IN VARCHAR2
1978 ,x_return_status OUT NOCOPY VARCHAR2
1979 ,x_msg_count OUT NOCOPY NUMBER
1980 ,x_msg_data OUT NOCOPY VARCHAR2)
1981 RETURN NUMBER
1982 IS
1983 v_usage_id NUMBER;
1984 l_api_version CONSTANT NUMBER := 1.0;
1985 l_api_name CONSTANT VARCHAR2(30) := 'usage_id_from_usage_name';
1986 BEGIN
1987 -- standard call to check for call compatibility
1988 IF (NOT FND_API.compatible_api_call(l_api_version
1989 ,p_api_version
1990 ,l_api_name
1991 ,G_PKG_NAME
1992 )) THEN
1993 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1994 END IF;
1995 SELECT model_usage_id
1996 INTO v_usage_id
1997 FROM CZ_MODEL_USAGES
1998 WHERE LTRIM(RTRIM(UPPER(CZ_MODEL_USAGES.name))) = LTRIM(RTRIM(UPPER(p_usage_name)))
1999 AND cz_model_usages.in_use = '1';
2000
2001 x_return_status := FND_API.G_RET_STS_SUCCESS;
2002 RETURN v_usage_id;
2003 EXCEPTION
2004 WHEN NO_DATA_FOUND THEN
2005 x_return_status:=FND_API.G_RET_STS_ERROR;
2006 FND_MESSAGE.SET_NAME('CZ', 'CZ_USG_NO_USAGE_FOUND');
2007 FND_MSG_PUB.ADD;
2008 fnd_msg_pub.count_and_get(p_count => x_msg_count,
2009 p_data => x_msg_data);
2010 RETURN NULL;
2011
2012 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2013 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2014 fnd_msg_pub.count_and_get(p_count => x_msg_count,
2015 p_data => x_msg_data);
2016 RETURN NULL;
2017 END usage_id_from_usage_name;
2018
2019
2020
2021 Function usage_id_from_usage_name (
2022 p_api_version IN NUMBER,
2023 p_user_id IN NUMBER,
2024 p_resp_id IN NUMBER,
2025 p_appl_id IN NUMBER,
2026 p_usage_name IN VARCHAR2,
2027 x_return_status OUT NOCOPY VARCHAR2,
2028 x_msg_count OUT NOCOPY NUMBER,
2029 x_msg_data OUT NOCOPY VARCHAR2
2030 )
2031 RETURN NUMBER
2032 IS
2033 v_usage_id NUMBER;
2034 BEGIN
2035 fnd_global.apps_initialize (
2036 p_user_id,
2037 p_resp_id,
2038 p_appl_id
2039 );
2040 v_usage_id:=usage_id_from_usage_name (p_api_version
2041 ,p_usage_name
2042 ,x_return_status
2043 ,x_msg_count
2044 ,x_msg_data);
2045 RETURN v_usage_id;
2046 END usage_id_from_usage_name;
2047 ------------------------------------------------------------------------------------------------
2048 /*
2049 * Public API for Model Migration.
2050 * @param p_request_id This is the CZ_MODEL_PUBLICATIONS, MIGRATION_GROUP_ID of the migration request.
2051 * Migration request is created by Developer and contains the list of all models selected
2052 * for Migration from the source's Configurator Repository, target Instance name and
2053 * target Repository Folder.
2054 * @param p_userid Standard parameters required for locking. Represent calling user.
2055 * @param p_respid Standard parameters required for locking. Represent calling responsibility.
2056 * @param p_applid Standard parameters required for locking. Represent calling application.
2057 * @param p_run_id Number identifying the session. If left NULL, the API will generate the number and
2058 * return it in x_run_id.
2059 * @param x_run_id Output parameter containing internally generated session identifier if p_run_id
2060 * was NULL, otherwise equal to p_run_id.
2061 */
2062
2063 PROCEDURE migrate_models(p_api_version IN NUMBER,
2064 p_request_id IN NUMBER,
2065 p_user_id IN NUMBER,
2066 p_resp_id IN NUMBER,
2067 p_appl_id IN NUMBER,
2068 p_run_id IN NUMBER,
2069 x_run_id OUT NOCOPY NUMBER,
2070 x_status OUT NOCOPY VARCHAR2
2071 ) IS
2072
2073 l_api_name CONSTANT VARCHAR2(30) := 'migrate_models';
2074 l_api_version CONSTANT NUMBER := 1.0;
2075 l_errbuf VARCHAR2(2000);
2076 BEGIN
2077
2078 IF(NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME))THEN
2079
2080 RAISE G_INCOMPATIBLE_API;
2081 END IF;
2082
2083 cz_model_migration_pvt.migrate_models(p_request_id, p_user_id, p_resp_id, p_appl_id, p_run_id, x_run_id, x_status);
2084
2085 EXCEPTION
2086 WHEN G_INCOMPATIBLE_API THEN
2087 x_status := G_STATUS_ERROR;
2088 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_API_VERSION_ERR', 'CODE_VERSION', l_api_version, 'IN_VERSION', p_api_version);
2089 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
2090 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
2091 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
2092 COMMIT;
2093 END;
2094 ---------------------------------------------------------------------------------------
2095 -- added by jonatara:bug6375827
2096 PROCEDURE create_publication_request (
2097 p_api_version IN NUMBER,
2098 p_model_id IN NUMBER,
2099 p_ui_def_id IN NUMBER,
2100 p_publication_mode IN VARCHAR2, -- DEFAULT 'P'
2101 p_server_id IN NUMBER,
2102 p_appl_id_tbl IN CZ_PB_MGR.t_ref,
2103 p_usg_id_tbl IN CZ_PB_MGR.t_ref, -- DEFAULT -1 (ie., 'Any Usage')
2104 p_lang_tbl IN CZ_PB_MGR.t_lang_code, -- DEFAULT 'US'
2105 p_start_date IN DATE, -- DEFAULT CZ_UTILS.epoch_begin
2106 p_end_date IN DATE, -- DEFAULT CZ_UTILS.CZ_UTILS.epoch_end
2107 x_publication_id OUT NOCOPY NUMBER,
2108 x_return_status OUT NOCOPY VARCHAR2,
2109 x_msg_count OUT NOCOPY NUMBER,
2110 x_msg_data OUT NOCOPY VARCHAR2
2111 ) IS
2112 l_api_name CONSTANT VARCHAR2(30) := 'create_publication_request';
2113 l_api_version CONSTANT NUMBER := 1.0;
2114 l_status VARCHAR2(3);
2115 l_errbuf VARCHAR2(2000);
2116
2117 BEGIN
2118
2119 IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
2120 RAISE G_INCOMPATIBLE_API;
2121 END IF;
2122 cz_pb_mgr.create_publication_request(
2123 p_model_id,
2124 p_ui_def_id,
2125 p_publication_mode,
2126 p_server_id,
2127 p_appl_id_tbl,
2128 p_usg_id_tbl,
2129 p_lang_tbl,
2130 p_start_date,
2131 p_end_date,
2132 x_publication_id,
2133 l_status,
2134 x_msg_count,
2135 x_msg_data
2136 );
2137 IF l_status = FND_API.G_RET_STS_SUCCESS THEN
2138 x_return_status := G_STATUS_SUCCESS;
2139 ELSE
2140 x_return_status := G_STATUS_ERROR;
2141 END IF;
2142 EXCEPTION
2143 WHEN G_INCOMPATIBLE_API THEN
2144 x_return_status := G_STATUS_ERROR;
2145 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_API_VERSION_ERR', 'CODE_VERSION', l_api_version, 'IN_VERSION', p_api_version);
2146 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, logtime)
2147 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, SYSDATE);
2148 COMMIT;
2149 WHEN OTHERS THEN
2150 x_return_status := G_STATUS_ERROR;
2151 l_errbuf := SQLERRM;
2152 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, logtime)
2153 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, SYSDATE);
2154 COMMIT;
2155 END create_publication_request;
2156
2157 ------------------------------------------------------------------------------------------------
2158 PROCEDURE create_publication_request (
2159 p_api_version IN NUMBER,
2160 p_model_id IN NUMBER,
2161 p_ui_def_id IN NUMBER,
2162 p_publication_mode IN VARCHAR2, -- DEFAULT 'P'
2163 p_server_id IN NUMBER,
2164 p_appl_id_tbl IN CZ_PB_MGR.t_ref,
2165 p_usg_id_tbl IN CZ_PB_MGR.t_ref, -- DEFAULT -1 (ie., 'Any Usage')
2166 p_lang_tbl IN CZ_PB_MGR.t_lang_code, -- DEFAULT 'US'
2167 p_start_date IN DATE, -- DEFAULT CZ_UTILS.epoch_begin
2168 p_end_date IN DATE, -- DEFAULT CZ_UTILS.CZ_UTILS.epoch_end
2169 p_user_id IN NUMBER,
2170 p_resp_id IN NUMBER,
2171 p_appl_id IN NUMBER,
2172 x_publication_id OUT NOCOPY NUMBER,
2173 x_return_status OUT NOCOPY VARCHAR2,
2174 x_msg_count OUT NOCOPY NUMBER,
2175 x_msg_data OUT NOCOPY VARCHAR2
2176 ) IS
2177 l_api_name CONSTANT VARCHAR2(30) := 'create_publication_request';
2178 l_api_version CONSTANT NUMBER := 1.0;
2179 l_status VARCHAR2(3);
2180 l_errbuf VARCHAR2(2000);
2181 BEGIN
2182 fnd_global.apps_initialize (p_user_id, p_resp_id, p_appl_id);
2183 create_publication_request (
2184 p_api_version,
2185 p_model_id,
2186 p_ui_def_id,
2187 p_publication_mode,
2188 p_server_id,
2189 p_appl_id_tbl,
2190 p_usg_id_tbl,
2191 p_lang_tbl,
2192 p_start_date,
2193 p_end_date,
2194 x_publication_id,
2195 x_return_status,
2196 x_msg_count,
2197 x_msg_data
2198 );
2199 END create_publication_request;
2200 ------------------------------------------------------------------------------------------------
2201 END CZ_modelOperations_pub;