[Home] [Help]
PACKAGE BODY: APPS.CZ_MODELOPERATIONS_PUB
Source
1 PACKAGE BODY CZ_modelOperations_pub AS
2 /* $Header: czmodopb.pls 120.6 2010/10/22 19:15:27 lamrute 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;
351
352 BEGIN
353 SELECT 1
354 INTO l_found
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
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
485 WHEN NO_DATA_FOUND THEN
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
605 WHEN NO_DATA_FOUND THEN
606 RAISE NOT_VALID_UI_DEF_ID;
607 END;
608
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 --10011026
684 l_local_name CZ_SERVERS.local_name%TYPE;
685 l_Exist VARCHAR2(1):= 'N';
686 l_err VARCHAR2(1);
687 l_errbuf VARCHAR2(2000);
688 l_retcode NUMBER;
689 l_user_name VARCHAR2(100);
690 l_user_id NUMBER;
691 l_resp_id NUMBER;
692 l_appl_id NUMBER;
693 TOO_MANY_IMP_SERVERS EXCEPTION;
694 NO_IMP_SERVERS EXCEPTION;
695 WRONG_EXV_VIEWS EXCEPTION;
696 DB_LINK_IS_DOWN EXCEPTION;
697 SESS_NOT_INITIALIZED EXCEPTION;
698
699 BEGIN
700
701 IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
702 RAISE G_INCOMPATIBLE_API;
703 END IF;
704
705 l_user_id := FND_GLOBAL.user_id;
706 IF (l_user_id IS NULL) THEN
707 RAISE SESS_NOT_INITIALIZED;
708 END IF;
709
710 BEGIN
711 SELECT fndnam_link_name,local_name --10011026
712 INTO l_db_link, l_local_name
713 FROM cz_servers
714 WHERE import_enabled = '1';
715 EXCEPTION
716 WHEN TOO_MANY_ROWS THEN
717 RAISE TOO_MANY_IMP_SERVERS;
718 WHEN NO_DATA_FOUND THEN
719 RAISE NO_IMP_SERVERS;
720 END;
721
722 --Bug #4865395. Changing the probe query to be against cz_exv_item_properties which is
723 --much lighter view than cz_exv_organizations.
724
725 -- probe select --
726 BEGIN
727 EXECUTE IMMEDIATE
728 'SELECT ''Y'' FROM cz_exv_item_properties where rownum < 2'
729 INTO l_Exist;
730 EXCEPTION
731 WHEN NO_DATA_FOUND THEN
732 NULL;
733 END;
734
735
736 --
737 -- if cz_exv_item_properties is empty then
738 -- this means that EXV views were recreated based on local tables
739 -- with rownum<1 where condition
740 -- in this case try to recreate views based on remote tables if
741 -- db link is alive
742 --
743 IF l_Exist='N' THEN
744 IF CZ_ORAAPPS_INTEGRATE.isLinkAlive(l_db_link)=CZ_ORAAPPS_INTEGRATE.LINK_WORKS THEN
745 -- 10011026 create_exv_views procedure is expecting local name as opposed to dblink name
746 -- l_err:=CZ_ORAAPPS_INTEGRATE.create_exv_views(l_db_link);
747 l_err:=CZ_ORAAPPS_INTEGRATE.create_exv_views(l_local_name);
748 IF l_err<>'0' THEN
749 -- not all EXV views have been recreated --
750 RAISE WRONG_EXV_VIEWS;
751 END IF;
752 ELSE
753 RAISE DB_LINK_IS_DOWN;
754 END IF;
755 END IF;
756
757
758 CZ_IMP_ALL.goSingleBill (p_org_id, p_top_inv_item_id, '0', -1, '0', x_run_id); -- sselahi: added x_run_id
759 x_status := G_STATUS_SUCCESS;
760
761
762 EXCEPTION
763 WHEN G_INCOMPATIBLE_API THEN
764 x_status := G_STATUS_ERROR;
765 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_API_VERSION_ERR', 'CODE_VERSION', l_api_version, 'IN_VERSION', p_api_version);
766 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
767 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
768 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
769 COMMIT;
770 WHEN SESS_NOT_INITIALIZED THEN
771 x_status := G_STATUS_ERROR;
772 l_errbuf := CZ_UTILS.GET_TEXT('CZ_SESS_NOT_INITIALIZED');
773 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
774 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
775 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
776 COMMIT;
777 WHEN TOO_MANY_IMP_SERVERS THEN
778 x_status := G_STATUS_ERROR;
779 l_errbuf := CZ_UTILS.GET_TEXT('CZ_IMP_TOO_MANY_SERVERS');
780 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
781 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
782 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
783 COMMIT;
784 WHEN NO_IMP_SERVERS THEN
785 x_status := G_STATUS_ERROR;
786 l_errbuf := CZ_UTILS.GET_TEXT('CZ_IMP_NO_SERVERS');
787 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
788 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
789 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
790 COMMIT;
791 WHEN WRONG_EXV_VIEWS THEN
792 x_status := G_STATUS_ERROR;
793 l_errbuf := 'Error : not all EXV views have been recreated successfully';
794 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
795 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
796 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
797 COMMIT;
798 WHEN DB_LINK_IS_DOWN THEN
799 x_status := G_STATUS_ERROR;
800 l_errbuf := CZ_UTILS.GET_TEXT('CZ_DB_LINK_IS_DOWN','DBLINK',l_db_link);
801 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
802 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
803 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
804 COMMIT;
805 WHEN CZ_ADMIN.IMP_MAXERR_REACHED THEN
806 x_status := G_STATUS_ERROR;
807 l_errbuf:=CZ_UTILS.GET_TEXT('CZ_IMP_MAXERR_REACHED');
808 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
809 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
810 COMMIT;
811 WHEN CZ_ADMIN.IMP_UNEXP_SQL_ERROR THEN
812 x_status := G_STATUS_ERROR;
813 l_errbuf := SQLERRM;
814 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
815 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
816 COMMIT;
817 WHEN OTHERS THEN
818 x_status := G_STATUS_ERROR;
819 l_errbuf := SQLERRM;
820 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_UNEXPECTED);
821 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
822 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
823 COMMIT;
824 END import_single_bill;
825 ------------------------------------------------------------------------------------------------
826 PROCEDURE import_single_bill(p_api_version IN NUMBER,
827 p_org_id IN NUMBER,
828 p_top_inv_item_id IN NUMBER,
829 p_user_id IN NUMBER,
830 p_resp_id IN NUMBER,
831 p_appl_id IN NUMBER,
832 x_run_id OUT NOCOPY NUMBER,
833 x_status OUT NOCOPY NUMBER)
834 IS
835 BEGIN
836 fnd_global.apps_initialize(p_user_id,p_resp_id,p_appl_id);
837 import_single_bill(p_api_version,
838 p_org_id,
839 p_top_inv_item_id,
840 x_run_id,
841 x_status);
842 END import_single_bill;
843 ---------------------------------------
844 PROCEDURE refresh_single_model(p_api_version IN NUMBER,
845 p_devl_project_id IN VARCHAR2,
846 x_run_id OUT NOCOPY NUMBER,
847 x_status OUT NOCOPY NUMBER) IS
848 l_api_name CONSTANT VARCHAR2(30) := 'refresh_single_model';
849 l_api_version CONSTANT NUMBER := 1.0;
850 l_errbuf VARCHAR2(2000);
851 l_found NUMBER;
852 l_db_link CZ_SERVERS.fndnam_link_name%TYPE;
853 l_Exist VARCHAR2(1):= 'N';
854 l_err VARCHAR2(1);
855 l_user_id NUMBER;
856 TOO_MANY_IMP_SERVERS EXCEPTION;
857 NO_IMP_SERVERS EXCEPTION;
858 WRONG_EXV_VIEWS EXCEPTION;
859 DB_LINK_IS_DOWN EXCEPTION;
860 PROJECT_ID_NOT_EXITS EXCEPTION;
861 SESS_NOT_INITIALIZED EXCEPTION;
862 lOrg_Id CZ_XFR_PROJECT_BILLS.ORGANIZATION_ID%TYPE;
863 lTop_Id CZ_XFR_PROJECT_BILLS.TOP_ITEM_ID%TYPE;
864
865 BEGIN
866
867 IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
868 RAISE G_INCOMPATIBLE_API;
869 END IF;
870 l_user_id := FND_GLOBAL.user_id;
871 IF (l_user_id IS NULL) THEN
872 RAISE SESS_NOT_INITIALIZED;
873 END IF;
874
875 -- verify p_devl_project_id
876 BEGIN
877 SELECT 1
878 INTO l_found
879 FROM cz_rp_entries
880 WHERE object_type = 'PRJ'
881 AND object_id = p_devl_project_id
882 AND deleted_flag = '0';
883 EXCEPTION
884 WHEN NO_DATA_FOUND THEN
885 RAISE PROJECT_ID_NOT_EXITS;
886 END;
887
888 -- get the org id and top model id
889 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)) -
890 length(substr(orig_sys_ref,instr(orig_sys_ref,':',1,2))) )) ,
891 rtrim(substr(orig_sys_ref,instr(orig_sys_ref,':',1,2)+1))
892 INTO lOrg_Id, lTop_Id
893 FROM cz_devl_projects
894 WHERE devl_project_id = p_devl_project_id
895 AND deleted_flag = '0';
896
897 -- check the imp server
898 BEGIN
899 SELECT fndnam_link_name
900 INTO l_db_link
901 FROM cz_servers
902 WHERE import_enabled = '1';
903 EXCEPTION
904 WHEN TOO_MANY_ROWS THEN
905 RAISE TOO_MANY_IMP_SERVERS;
906 WHEN NO_DATA_FOUND THEN
907 RAISE NO_IMP_SERVERS;
908 END;
909
910 --Bug #4865395. Changing the probe query to be against cz_exv_item_properties which is
911 --much lighter view than cz_exv_organizations.
912
913 -- probe select --
914 BEGIN
915 EXECUTE IMMEDIATE
916 'SELECT ''Y'' FROM cz_exv_item_properties where rownum < 2'
917 INTO l_Exist;
918 EXCEPTION
919 WHEN NO_DATA_FOUND THEN
920 NULL;
921 END;
922 --
923 -- if cz_exv_item_properties is empty then
924 -- this means that EXV views were recreated based on local tables
925 -- with rownum<1 where condition
926 -- in this case try to recreate views based on remote tables if
927 -- db link is alive
928 --
929 IF l_Exist='N' THEN
930 IF CZ_ORAAPPS_INTEGRATE.isLinkAlive(l_db_link)=CZ_ORAAPPS_INTEGRATE.LINK_WORKS THEN
931 l_err:=CZ_ORAAPPS_INTEGRATE.create_exv_views(l_db_link);
932 IF l_err<>'0' THEN
933 -- not all EXV views have been recreated --
934 RAISE WRONG_EXV_VIEWS;
935 END IF;
936 ELSE
937 RAISE DB_LINK_IS_DOWN;
938 END IF;
939 END IF;
940
941 -- call the import
942 CZ_IMP_ALL.goSingleBill (lOrg_Id, lTop_Id, '0', -1, '0', x_run_id);
943 x_status := G_STATUS_SUCCESS;
944
945 EXCEPTION
946 WHEN G_INCOMPATIBLE_API THEN
947 x_status := G_STATUS_ERROR;
948 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_API_VERSION_ERR', 'CODE_VERSION', l_api_version, 'IN_VERSION', p_api_version);
949 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
950 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
951 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
952 COMMIT;
953 WHEN SESS_NOT_INITIALIZED THEN
954 x_status := G_STATUS_ERROR;
955 l_errbuf := CZ_UTILS.GET_TEXT('CZ_SESS_NOT_INITIALIZED');
956 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
957 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
958 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
959 COMMIT;
960 WHEN TOO_MANY_IMP_SERVERS THEN
961 x_status := G_STATUS_ERROR;
962 l_errbuf := CZ_UTILS.GET_TEXT('CZ_IMP_TOO_MANY_SERVERS');
963 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
964 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
965 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
966 COMMIT;
967 WHEN NO_IMP_SERVERS THEN
968 x_status := G_STATUS_ERROR;
969 l_errbuf := CZ_UTILS.GET_TEXT('CZ_IMP_NO_SERVERS');
970 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
971 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
972 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
973 COMMIT;
974 WHEN WRONG_EXV_VIEWS THEN
975 x_status := G_STATUS_ERROR;
976 l_errbuf := 'Error : not all EXV views have been recreated successfully';
977 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
978 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
979 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
980 COMMIT;
981 WHEN DB_LINK_IS_DOWN THEN
982 x_status := G_STATUS_ERROR;
983 l_errbuf := CZ_UTILS.GET_TEXT('CZ_DB_LINK_IS_DOWN','DBLINK',l_db_link);
984 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
985 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
986 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
987 COMMIT;
988 WHEN PROJECT_ID_NOT_EXITS THEN
989 x_status := G_STATUS_ERROR;
990 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_DEV_PRJ_ID_ERR', 'PROJID', p_devl_project_id);
991 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
992 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
993 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
994 COMMIT;
995 WHEN CZ_ADMIN.IMP_MAXERR_REACHED THEN
996 x_status := G_STATUS_ERROR;
997 l_errbuf:=CZ_UTILS.GET_TEXT('CZ_IMP_MAXERR_REACHED');
998 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
999 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
1000 COMMIT;
1001 WHEN CZ_ADMIN.IMP_UNEXP_SQL_ERROR THEN
1002 x_status := G_STATUS_ERROR;
1003 l_errbuf := SQLERRM;
1004 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1005 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
1006 COMMIT;
1007 WHEN OTHERS THEN
1008 x_status := G_STATUS_ERROR;
1009 l_errbuf := SQLERRM;
1010 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_UNEXPECTED);
1011 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1012 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
1013 COMMIT;
1014 end refresh_single_model;
1015 ------------------------------------------------------------------------------------------------
1016 PROCEDURE refresh_single_model(p_api_version IN NUMBER,
1017 p_devl_project_id IN VARCHAR2,
1018 p_user_id IN NUMBER,
1019 p_resp_id IN NUMBER,
1020 p_appl_id IN NUMBER,
1021 x_run_id OUT NOCOPY NUMBER,
1022 x_status OUT NOCOPY NUMBER)
1023 IS
1024 BEGIN
1025 fnd_global.apps_initialize(p_user_id,p_resp_id,p_appl_id);
1026 refresh_single_model(p_api_version,
1027 p_devl_project_id,
1028 x_run_id,
1029 x_status);
1030 END refresh_single_model;
1031
1032 -------------------------------------------------------------
1033 PROCEDURE publish_model(p_api_version IN NUMBER,
1034 p_publication_id IN NUMBER,
1035 x_run_id OUT NOCOPY NUMBER,
1036 x_status OUT NOCOPY NUMBER) IS
1037 l_api_name CONSTANT VARCHAR2(30) := 'publish_model';
1038 l_api_version CONSTANT NUMBER := 1.0;
1039 l_status VARCHAR2(3);
1040 l_errbuf VARCHAR2(2000);
1041
1042 BEGIN
1043 SELECT cz_xfr_run_infos_s.NEXTVAL INTO x_run_id FROM DUAL;
1044
1045 IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1046 RAISE G_INCOMPATIBLE_API;
1047 END IF;
1048
1049
1050 cz_pb_mgr.publish_model(p_publication_id, x_run_id, l_status);
1051
1052 IF l_status = 'OK' THEN
1053 x_status := G_STATUS_SUCCESS;
1054 ELSE
1055 x_status := G_STATUS_ERROR;
1056 END IF;
1057
1058 EXCEPTION
1059 WHEN G_INCOMPATIBLE_API THEN
1060 x_status := G_STATUS_ERROR;
1061 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_API_VERSION_ERR', 'CODE_VERSION', l_api_version, 'IN_VERSION', p_api_version);
1062 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
1063 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1064 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
1065 COMMIT;
1066 WHEN OTHERS THEN
1067 x_status := G_STATUS_ERROR;
1068 l_errbuf := SQLERRM;
1069 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_UNEXPECTED);
1070 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1071 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
1072 END publish_model;
1073 ------------------------------------------------------------------------------------------------
1074 PROCEDURE publish_model(p_api_version IN NUMBER,
1075 p_publication_id IN NUMBER,
1076 p_user_id IN NUMBER,
1077 p_resp_id IN NUMBER,
1078 p_appl_id IN NUMBER,
1079 x_run_id OUT NOCOPY NUMBER,
1080 x_status OUT NOCOPY NUMBER) IS
1081 BEGIN
1082 fnd_global.apps_initialize(p_user_id,p_resp_id,p_appl_id);
1083 publish_model(p_api_version,
1084 p_publication_id,
1085 x_run_id,
1086 x_status);
1087 END publish_model;
1088 --------------------------------------
1089 PROCEDURE deep_model_copy(p_api_version IN NUMBER,
1090 p_devl_project_id IN NUMBER,
1091 p_folder IN NUMBER,
1092 p_copy_rules IN NUMBER,
1093 p_copy_uis IN NUMBER,
1094 p_copy_root IN NUMBER,
1095 x_devl_project_id OUT NOCOPY NUMBER,
1096 x_run_id OUT NOCOPY NUMBER,
1097 x_status OUT NOCOPY NUMBER) IS
1098 l_api_name CONSTANT VARCHAR2(30) := 'deep_model_copy';
1099 l_api_version CONSTANT NUMBER := 1.0;
1100 l_status VARCHAR2(3);
1101 l_errbuf VARCHAR2(2000);
1102 l_found NUMBER;
1103 NOT_VALID_PROJECT_ID EXCEPTION;
1104
1105 BEGIN
1106 SELECT cz_xfr_run_infos_s.NEXTVAL INTO x_run_id FROM DUAL;
1107 IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1108 RAISE G_INCOMPATIBLE_API;
1109 END IF;
1110
1111 BEGIN
1112 SELECT 1
1113 INTO l_found
1114 FROM cz_rp_entries
1115 WHERE object_type = 'PRJ' AND object_id = p_devl_project_id AND deleted_flag = '0';
1116 EXCEPTION
1117 WHEN NO_DATA_FOUND THEN
1118 RAISE NOT_VALID_PROJECT_ID;
1119 END;
1120
1121 cz_pb_mgr.deep_model_copy(p_devl_project_id, 0, p_folder, p_copy_rules, p_copy_uis,
1122 p_copy_root, x_devl_project_id, x_run_id, l_status);
1123
1124 IF l_status = 'OK' THEN
1125 x_status := G_STATUS_SUCCESS;
1126 ELSE
1127 x_status := G_STATUS_ERROR;
1128 END IF;
1129
1130 EXCEPTION
1131 WHEN G_INCOMPATIBLE_API THEN
1132 x_status := G_STATUS_ERROR;
1133 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_API_VERSION_ERR', 'CODE_VERSION', l_api_version, 'IN_VERSION', p_api_version);
1134 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
1135 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1136 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
1137 COMMIT;
1138 WHEN NOT_VALID_PROJECT_ID THEN
1139 x_status := G_STATUS_ERROR;
1140 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_DEV_PRJ_ID_ERR', 'PROJID', p_devl_project_id);
1141 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
1142 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1143 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
1144 COMMIT;
1145 WHEN OTHERS THEN
1146 x_status := G_STATUS_ERROR;
1147 l_errbuf := SQLERRM;
1148 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_UNEXPECTED);
1149 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1150 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
1151 COMMIT;
1152 END deep_model_copy;
1153 ------------------------------------------------------------------------------------------------
1154 PROCEDURE deep_model_copy(p_api_version IN NUMBER,
1155 p_user_id IN NUMBER,
1156 p_resp_id IN NUMBER,
1157 p_appl_id IN NUMBER,
1158 p_devl_project_id IN NUMBER,
1159 p_folder IN NUMBER,
1160 p_copy_rules IN NUMBER,
1161 p_copy_uis IN NUMBER,
1162 p_copy_root IN NUMBER,
1163 x_devl_project_id OUT NOCOPY NUMBER,
1164 x_run_id OUT NOCOPY NUMBER,
1165 x_status OUT NOCOPY NUMBER) IS
1166
1167 BEGIN
1168 fnd_global.apps_initialize(p_user_id,p_resp_id,p_appl_id);
1169 deep_model_copy(p_api_version,
1170 p_devl_project_id,
1171 p_folder,
1172 p_copy_rules,
1173 p_copy_uis,
1174 p_copy_root,
1175 x_devl_project_id,
1176 x_run_id,
1177 x_status);
1178 END deep_model_copy;
1179
1180 -----------------------------------------------------------------
1181 PROCEDURE execute_populator(p_api_version IN NUMBER,
1182 p_populator_id IN NUMBER,
1183 p_imp_run_id IN OUT NOCOPY VARCHAR2,
1184 x_run_id OUT NOCOPY NUMBER,
1185 x_status OUT NOCOPY NUMBER) IS
1186 l_api_name CONSTANT VARCHAR2(30) := 'execute_populator';
1187 l_api_version CONSTANT NUMBER := 1.0;
1188 l_errbuf VARCHAR2(2000);
1189 l_found NUMBER;
1190 NOT_VALID_POPULATOR_ID EXCEPTION;
1191
1192 BEGIN
1193 SAVEPOINT execute_populator_PUB;
1194
1195 SELECT cz_xfr_run_infos_s.NEXTVAL INTO x_run_id FROM DUAL;
1196 IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1197 RAISE G_INCOMPATIBLE_API;
1198 END IF;
1199
1200 BEGIN
1201 SELECT NULL
1202 INTO l_found
1203 FROM cz_populators
1204 WHERE populator_id = p_populator_id AND deleted_flag = '0';
1205 EXCEPTION
1206 WHEN NO_DATA_FOUND THEN
1207 RAISE NOT_VALID_POPULATOR_ID;
1208 END;
1209
1210 cz_populators_pkg.execute(p_populator_id, p_imp_run_id, x_run_id);
1211 IF x_run_id = 0 THEN
1212 x_status := G_STATUS_SUCCESS;
1213 COMMIT WORK;
1214 ELSE
1215 x_status := G_STATUS_ERROR;
1216 ROLLBACK TO execute_populator_PUB;
1217 END IF;
1218
1219 EXCEPTION
1220 WHEN G_INCOMPATIBLE_API THEN
1221 x_status := G_STATUS_ERROR;
1222 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_API_VERSION_ERR', 'CODE_VERSION', l_api_version, 'IN_VERSION', p_api_version);
1223 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
1224 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1225 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
1226 COMMIT;
1227 WHEN NOT_VALID_POPULATOR_ID THEN
1228 x_status := G_STATUS_ERROR;
1229 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_POPULATOR_ID_ERR');
1230 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
1231 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1232 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
1233 COMMIT;
1234 WHEN OTHERS THEN
1235 x_status := G_STATUS_ERROR;
1236 ROLLBACK TO execute_populator_PUB;
1237 l_errbuf := SQLERRM;
1238 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_UNEXPECTED);
1239 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1240 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
1241 COMMIT;
1242 END execute_populator;
1243
1244 ------------------------------------------------------------------------------------------------
1245 PROCEDURE execute_populator(p_api_version IN NUMBER,
1246 p_user_id IN NUMBER,
1247 p_resp_id IN NUMBER,
1248 p_appl_id IN NUMBER,
1249 p_populator_id IN NUMBER,
1250 p_imp_run_id IN OUT NOCOPY VARCHAR2,
1251 x_run_id OUT NOCOPY NUMBER,
1252 x_status OUT NOCOPY NUMBER) IS
1253 BEGIN
1254 fnd_global.apps_initialize(p_user_id,p_resp_id,p_appl_id);
1255 execute_populator(p_api_version,
1256 p_populator_id,
1257 p_imp_run_id,
1258 x_run_id,
1259 x_status);
1260 END execute_populator;
1261
1262 -------------------------------------------------
1263 PROCEDURE repopulate(p_api_version IN NUMBER,
1264 p_devl_project_id IN NUMBER,
1265 p_regenerate_all IN VARCHAR2 , -- DEFAULT '1',
1266 p_handle_invalid IN VARCHAR2 , -- DEFAULT '1',
1267 p_handle_broken IN VARCHAR2 , -- DEFAULT '1',
1268 x_run_id OUT NOCOPY NUMBER,
1269 x_status OUT NOCOPY NUMBER) IS
1270 l_api_name CONSTANT VARCHAR2(30) := 'repopulate';
1271 l_api_version CONSTANT NUMBER := 1.0;
1272 l_errbuf VARCHAR2(2000);
1273 l_found NUMBER;
1274 NOT_VALID_PROJECT_ID EXCEPTION;
1275
1276 BEGIN
1277 SAVEPOINT repopulate_PUB;
1278
1279 SELECT cz_xfr_run_infos_s.NEXTVAL INTO x_run_id FROM DUAL;
1280 IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1281 RAISE G_INCOMPATIBLE_API;
1282 END IF;
1283
1284 BEGIN
1285 SELECT 1
1286 INTO l_found
1287 FROM cz_rp_entries
1288 WHERE object_type = 'PRJ' AND object_id = p_devl_project_id AND deleted_flag = '0';
1289 EXCEPTION
1290 WHEN NO_DATA_FOUND THEN
1291 RAISE NOT_VALID_PROJECT_ID;
1292 END;
1293
1294 cz_populators_pkg.repopulate(p_devl_project_id, p_regenerate_all, p_handle_invalid, p_handle_broken, x_run_id);
1295 IF x_run_id = 0 THEN
1296 x_status := G_STATUS_SUCCESS;
1297 COMMIT WORK;
1298 ELSE
1299 x_status := G_STATUS_ERROR;
1300 ROLLBACK TO repopulate_PUB;
1301 END IF;
1302
1303 EXCEPTION
1304 WHEN G_INCOMPATIBLE_API THEN
1305 x_status := G_STATUS_ERROR;
1306 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_API_VERSION_ERR', 'CODE_VERSION', l_api_version, 'IN_VERSION', p_api_version);
1307 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
1308 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1309 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
1310 COMMIT;
1311 WHEN NOT_VALID_PROJECT_ID THEN
1312 x_status := G_STATUS_ERROR;
1313 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_DEV_PRJ_ID_ERR', 'PROJID', p_devl_project_id);
1314 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
1315 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1316 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
1317 COMMIT;
1318 WHEN OTHERS THEN
1319 x_status := G_STATUS_ERROR;
1320 ROLLBACK TO repopulate_PUB;
1321 l_errbuf := SQLERRM;
1322 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_UNEXPECTED);
1323 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1324 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
1325 COMMIT;
1326 END repopulate;
1327 ------------------------------------------------------------------------------------------------
1328 PROCEDURE repopulate(p_api_version IN NUMBER,
1329 p_devl_project_id IN NUMBER,
1330 p_user_id IN NUMBER,
1331 p_resp_id IN NUMBER,
1332 p_appl_id IN NUMBER,
1333 p_regenerate_all IN VARCHAR2 , -- DEFAULT '1',
1334 p_handle_invalid IN VARCHAR2 , -- DEFAULT '1',
1335 p_handle_broken IN VARCHAR2 , -- DEFAULT '1',
1336 x_run_id OUT NOCOPY NUMBER,
1337 x_status OUT NOCOPY NUMBER) IS
1338 BEGIN
1339 fnd_global.apps_initialize(p_user_id,p_resp_id,p_appl_id);
1340 repopulate(p_api_version,
1341 p_devl_project_id,
1342 p_user_id ,
1343 p_resp_id ,
1344 p_appl_id ,
1345 p_regenerate_all ,
1346 p_handle_invalid ,
1347 p_handle_broken ,
1348 x_run_id ,
1349 x_status );
1350 END repopulate;
1351
1352 ---------------------------------------------------------
1353 PROCEDURE republish_model(p_api_version IN NUMBER,
1354 p_publication_id IN NUMBER,
1355 p_start_date IN DATE,
1356 p_end_date IN DATE,
1357 x_run_id OUT NOCOPY NUMBER,
1358 x_status OUT NOCOPY NUMBER) IS
1359 l_api_name CONSTANT VARCHAR2(30) := 'republish_model';
1360 l_api_version CONSTANT NUMBER := 1.0;
1361 l_status VARCHAR2(3);
1362 l_errbuf VARCHAR2(2000);
1363 l_start_date DATE;
1364 l_end_date DATE;
1365 l_publication_id NUMBER;
1366 BEGIN
1367 SELECT cz_xfr_run_infos_s.NEXTVAL INTO x_run_id FROM DUAL;
1368
1369 IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1370 RAISE G_INCOMPATIBLE_API;
1371 END IF;
1372
1373 l_start_date := p_start_date;
1374 l_end_date := p_end_date;
1375 l_publication_id := p_publication_id;
1376 cz_pb_mgr.republish_model(l_publication_id,l_start_date,l_end_date,x_run_id,l_status);
1377
1378 IF l_status = 'OK' THEN
1379 x_status := G_STATUS_SUCCESS;
1380 ELSE
1381 x_status := G_STATUS_ERROR;
1382 END IF;
1383
1384 EXCEPTION
1385 WHEN G_INCOMPATIBLE_API THEN
1386 x_status := G_STATUS_ERROR;
1387 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_API_VERSION_ERR', 'CODE_VERSION', l_api_version, 'IN_VERSION', p_api_version);
1388 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
1389 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1390 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
1391 COMMIT;
1392 WHEN OTHERS THEN
1393 x_status := G_STATUS_ERROR;
1394 l_errbuf := SQLERRM;
1395 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_UNEXPECTED);
1396 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1397 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
1398 END republish_model;
1399 ---------------------------------------------------------
1400 PROCEDURE republish_model(p_api_version IN NUMBER,
1401 p_publication_id IN NUMBER,
1402 p_user_id IN NUMBER,
1403 p_resp_id IN NUMBER,
1404 p_appl_id IN NUMBER,
1405 p_start_date IN DATE,
1406 p_end_date IN DATE,
1407 x_run_id OUT NOCOPY NUMBER,
1408 x_status OUT NOCOPY NUMBER)
1409 IS
1410 BEGIN
1411 fnd_global.apps_initialize(p_user_id,p_resp_id,p_appl_id);
1412 republish_model(p_api_version,
1413 p_publication_id,
1414 p_start_date,
1415 p_end_date,
1416 x_run_id,
1417 x_status);
1418 END republish_model;
1419 ------------------------------------------------------------------------------------------------
1420 FUNCTION rp_folder_exists (p_api_version IN NUMBER,
1421 p_encl_folder_id IN NUMBER,
1422 p_rp_folder_id IN NUMBER) RETURN BOOLEAN IS
1423
1424 l_api_name CONSTANT VARCHAR2(30) := 'rp_folder_exists';
1425 l_api_version CONSTANT NUMBER := 1.0;
1426
1427 -- cursor to check the enclosing folder when it is not null
1428 CURSOR encl_folder_exits_csr IS
1429 SELECT 'X'
1430 FROM cz_rp_entries
1431 WHERE object_id = p_encl_folder_id
1432 AND object_type = 'FLD'
1433 AND deleted_flag = '0';
1434
1435 -- cursor to check the folder when encl folder is not null
1436 CURSOR folder_exists_in_encl_csr IS
1437 SELECT 'X'
1438 FROM cz_rp_entries
1439 WHERE object_id = p_rp_folder_id
1440 AND enclosing_folder = p_encl_folder_id
1441 AND object_type = 'FLD'
1442 AND deleted_flag = '0';
1443
1444 -- cursor to check the folder when enclosing folder is null
1445 CURSOR folder_exists_csr IS
1446 SELECT 'X'
1447 FROM cz_rp_entries
1448 WHERE object_id = p_rp_folder_id
1449 AND object_type = 'FLD'
1450 AND deleted_flag = '0';
1451
1452 x_found BOOLEAN:=FALSE;
1453 p_error_flag CHAR(1):='';
1454 x_msg_data VARCHAR2(2000);
1455 l_dummy_nbr NUMBER;
1456
1457 BEGIN
1458 IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1459 RAISE G_INCOMPATIBLE_API;
1460 END IF;
1461
1462 IF p_encl_folder_id IS NOT NULL THEN
1463 -- first check if enclosing folder exists
1464 OPEN encl_folder_exits_csr;
1465 FETCH encl_folder_exits_csr INTO p_error_flag;
1466 x_found:=encl_folder_exits_csr%FOUND;
1467 CLOSE encl_folder_exits_csr;
1468
1469 IF NOT x_found THEN
1470 RETURN x_found;
1471 END IF;
1472
1473 -- now check if the folder exists
1474 OPEN folder_exists_in_encl_csr;
1475 FETCH folder_exists_in_encl_csr INTO p_error_flag;
1476 x_found:=folder_exists_in_encl_csr%FOUND;
1477 CLOSE folder_exists_in_encl_csr;
1478 ELSE
1479 -- check if folder exists anywhere
1480 OPEN folder_exists_csr;
1481 FETCH folder_exists_csr INTO p_error_flag;
1482 x_found:=folder_exists_csr%FOUND;
1483 CLOSE folder_exists_csr;
1484 END IF;
1485
1486 RETURN x_found;
1487
1488 EXCEPTION
1489 WHEN G_INCOMPATIBLE_API THEN
1490 RAISE G_INCOMPATIBLE_API;
1491 WHEN OTHERS THEN
1492 RAISE FND_API.G_EXC_ERROR;
1493 END rp_folder_exists;
1494 ---------------------------------------------------------
1495 FUNCTION rp_folder_exists (
1496 p_api_version IN NUMBER,
1497 p_encl_folder_id IN NUMBER,
1498 p_rp_folder_id IN NUMBER,
1499 p_user_id IN NUMBER,
1500 p_resp_id IN NUMBER,
1501 p_appl_id IN NUMBER
1502 ) RETURN BOOLEAN IS
1503 BEGIN
1504 fnd_global.apps_initialize (
1505 p_user_id,
1506 p_resp_id,
1507 p_appl_id
1508 );
1509 return rp_folder_exists (
1510 p_api_version,
1511 p_encl_folder_id,
1512 p_rp_folder_id
1513 );
1514 END rp_folder_exists;
1515 ---------------------------------------------------------
1516 PROCEDURE create_rp_folder(p_api_version IN NUMBER
1517 ,p_encl_folder_id IN CZ_RP_ENTRIES.OBJECT_ID%TYPE
1518 ,p_new_folder_name IN CZ_RP_ENTRIES.NAME%TYPE
1519 ,p_folder_desc IN CZ_RP_ENTRIES.DESCRIPTION%TYPE
1520 ,p_folder_notes IN CZ_RP_ENTRIES.NOTES%TYPE
1521 ,x_new_folder_id OUT NOCOPY CZ_RP_ENTRIES.OBJECT_ID%TYPE
1522 ,x_return_status OUT NOCOPY VARCHAR2
1523 ,x_msg_count OUT NOCOPY NUMBER
1524 ,x_msg_data OUT NOCOPY VARCHAR2
1525 )
1526 IS
1527
1528 l_api_version CONSTANT NUMBER := 1.0;
1529 l_api_name CONSTANT VARCHAR2(30) := 'create_rp_folder';
1530
1531 l_new_object_id CZ_RP_ENTRIES.OBJECT_ID%TYPE;
1532 l_dummy_nbr NUMBER;
1533 l_count NUMBER;
1534
1535 BEGIN
1536 -- standard call to check for call compatibility
1537 IF (NOT FND_API.compatible_api_call(l_api_version
1538 ,p_api_version
1539 ,l_api_name
1540 ,G_PKG_NAME
1541 )) THEN
1542 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1543 END IF;
1544
1545 BEGIN -- validate the encl_folder_id
1546 SELECT 1 INTO l_dummy_nbr
1547 FROM cz_rp_entries
1548 WHERE object_id = p_encl_folder_id
1549 AND object_type = 'FLD'
1550 AND deleted_flag = '0';
1551 EXCEPTION
1552 WHEN NO_DATA_FOUND THEN
1553 x_msg_data := CZ_UTILS.GET_TEXT('CZ_RP_FLDR_NO_ENCL_FLDR');
1554 RAISE FND_API.G_EXC_ERROR;
1555 END;
1556
1557 BEGIN -- check if folder already exists, if so return its id
1558 SELECT object_id INTO x_new_folder_id
1559 FROM cz_rp_entries
1560 WHERE name = p_new_folder_name
1561 AND enclosing_folder = p_encl_folder_id
1562 AND object_type = 'FLD'
1563 AND deleted_flag = '0';
1564
1565 EXCEPTION -- it doesn't exists, so create it
1566 WHEN NO_DATA_FOUND THEN
1567
1568 SELECT cz_rp_entries_s.NEXTVAL
1569 INTO l_new_object_id
1570 FROM DUAL;
1571
1572 INSERT INTO cz_rp_entries
1573 (object_id
1574 ,name
1575 ,object_type
1576 ,enclosing_folder
1577 ,description
1578 ,notes
1579 )
1580 VALUES
1581 (l_new_object_id
1582 ,p_new_folder_name
1583 ,'FLD'
1584 ,p_encl_folder_id
1585 ,p_folder_desc
1586 ,p_folder_notes
1587 );
1588 COMMIT;
1589 x_new_folder_id := l_new_object_id;
1590 END;
1591
1592 x_return_status := FND_API.G_RET_STS_SUCCESS;
1593
1594 EXCEPTION
1595 WHEN FND_API.G_EXC_ERROR THEN
1596 x_return_status := FND_API.G_RET_STS_ERROR;
1597 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1598 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1599 fnd_msg_pub.count_and_get(p_count => x_msg_count,
1600 p_data => x_msg_data);
1601 WHEN OTHERS THEN
1602 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1603 IF fnd_msg_pub.check_msg_Level(fnd_msg_pub.G_MSG_LVL_UNEXP_ERROR) THEN
1604 fnd_msg_pub.add_exc_msg(G_PKG_NAME, l_api_name);
1605 END IF;
1606 fnd_msg_pub.count_and_get(p_count => x_msg_count,
1607 p_data => x_msg_data);
1608 END create_rp_folder;
1609 ---------------------------------------------------------
1610 PROCEDURE create_rp_folder (
1611 p_api_version IN NUMBER,
1612 p_encl_folder_id IN CZ_RP_ENTRIES.OBJECT_ID%TYPE,
1613 p_new_folder_name IN CZ_RP_ENTRIES.NAME%TYPE,
1614 p_folder_desc IN CZ_RP_ENTRIES.DESCRIPTION%TYPE,
1615 p_folder_notes IN CZ_RP_ENTRIES.NOTES%TYPE,
1616 p_user_id IN NUMBER,
1617 p_resp_id IN NUMBER,
1618 p_appl_id IN NUMBER,
1619 x_new_folder_id OUT NOCOPY CZ_RP_ENTRIES.OBJECT_ID%TYPE,
1620 x_return_status OUT NOCOPY VARCHAR2,
1621 x_msg_count OUT NOCOPY NUMBER,
1622 x_msg_data OUT NOCOPY VARCHAR2
1623 ) IS
1624 BEGIN
1625 fnd_global.apps_initialize (
1626 p_user_id,
1627 p_resp_id,
1628 p_appl_id
1629 );
1630 create_rp_folder (
1631 p_api_version,
1632 p_encl_folder_id,
1633 p_new_folder_name,
1634 p_folder_desc,
1635 p_folder_notes,
1636 x_new_folder_id,
1637 x_return_status,
1638 x_msg_count,
1639 x_msg_data
1640 );
1641 END create_rp_folder;
1642 ---------------------------------------------------------
1643 PROCEDURE import_generic(p_api_version IN NUMBER
1644 ,p_run_id IN NUMBER
1645 ,p_rp_folder_id IN NUMBER
1646 ,x_run_id OUT NOCOPY NUMBER
1647 ,x_status OUT NOCOPY NUMBER)
1648 IS
1649 l_api_name CONSTANT VARCHAR2(30) := 'import_generic';
1650 l_api_version CONSTANT NUMBER := 1.0;
1651 TYPE boolean_t IS TABLE OF BOOLEAN index by BINARY_INTEGER;
1652 l_dummy_nbr NUMBER;
1653 l_msg_data VARCHAR2(2000);
1654 l_msg_count NUMBER := 0;
1655 l_return_status VARCHAR2(1);
1656 l_locked_models_tbl cz_security_pvt.number_type_tbl;
1657 l_model_id_tbl cz_security_pvt.number_type_tbl;
1658 l_devl_prj_id_tbl cz_security_pvt.number_type_tbl;
1659 l_all_locked_models_tbl cz_security_pvt.number_type_tbl;
1660
1661 NO_PRIV_EXCP EXCEPTION;
1662 PRIV_CHECK_ERR_EXP EXCEPTION;
1663 FAILED_TO_LOCK_MODEL_EXCP EXCEPTION;
1664 MODEL_NOT_EDITABLE EXCEPTION;
1665 MODEL_LOCKED_EXCP EXCEPTION;
1666 MODEL_UNLOCK_EXCP EXCEPTION;
1667 INVALID_ENCL_FLDR_EXCP EXCEPTION;
1668 SESS_NOT_INITIALIZED_EXCP EXCEPTION;
1669
1670 xERROR BOOLEAN:=FALSE;
1671 l_user_name varchar2(255);
1672 l_user_id NUMBER;
1673 l_is_new_model BOOLEAN;
1674
1675 -- model ids before calling generic import
1676 CURSOR l_imp_devl_project_csr IS
1677 SELECT nvl(model_id,0)
1678 FROM CZ_IMP_DEVL_PROJECT
1679 WHERE rec_status IS NULL AND Run_ID = p_run_id;
1680
1681 -- devl projects after after calling generic import
1682 CURSOR l_imp_devl_project_csr_2 IS
1683 SELECT nvl(model_id,0), nvl(devl_project_id,0)
1684 FROM CZ_IMP_DEVL_PROJECT
1685 WHERE rec_status IS NOT NULL AND Run_ID = x_run_id;
1686
1687 BEGIN
1688
1689 IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1690 RAISE G_INCOMPATIBLE_API;
1691 END IF;
1692
1693 l_user_id := FND_GLOBAL.user_id;
1694 l_user_name := FND_GLOBAL.user_name;
1695 IF (l_user_name IS NULL) THEN
1696 RAISE SESS_NOT_INITIALIZED_EXCP;
1697 END IF;
1698
1699 BEGIN -- validate the encl_folder_id
1700 SELECT 1 INTO l_dummy_nbr
1701 FROM cz_rp_entries
1702 WHERE object_id = p_rp_folder_id
1703 AND object_type = 'FLD'
1704 AND deleted_flag = '0';
1705 EXCEPTION
1706 WHEN NO_DATA_FOUND THEN
1707 l_msg_count := 1;
1708 l_msg_data := cz_utils.get_text('CZ_IMPGEN_ENCL_FLDR');
1709 RAISE INVALID_ENCL_FLDR_EXCP;
1710 END;
1711
1712 l_model_id_tbl.DELETE;
1713 l_all_locked_models_tbl.DELETE;
1714 OPEN l_imp_devl_project_csr;
1715 FETCH l_imp_devl_project_csr
1716 BULK COLLECT INTO l_model_id_tbl;
1717 CLOSE l_imp_devl_project_csr;
1718
1719 -- shallow lock each model because we don't know model relationships
1720
1721 IF (l_model_id_tbl.COUNT > 0) THEN
1722 FOR i IN l_model_id_tbl.FIRST..l_model_id_tbl.LAST LOOP
1723 IF (l_model_id_tbl(i) <> 0) THEN
1724 l_locked_models_tbl.DELETE;
1725 cz_security_pvt.lock_model(
1726 p_api_version => 1.0,
1727 p_model_id => l_model_id_tbl(i),
1728 p_lock_child_models => FND_API.G_FALSE,
1729 p_commit_flag => FND_API.G_TRUE,
1730 x_locked_entities => l_locked_models_tbl,
1731 x_return_status => l_return_status,
1732 x_msg_count => l_msg_count,
1733 x_msg_data => l_msg_data);
1734 IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1735 FOR k IN 1..l_msg_count LOOP
1736 l_msg_data := fnd_msg_pub.get(k,fnd_api.g_false);
1737 xERROR:=cz_utils.log_report(l_msg_data,1,'CZ_MODELOPERATIONS_PUB.IMPORT_GENERIC',20001,p_run_id);
1738 COMMIT;
1739 END LOOP;
1740 RAISE FAILED_TO_LOCK_MODEL_EXCP;
1741 END IF;
1742 IF ( l_locked_models_tbl.COUNT > 0 ) THEN
1743 FOR j IN l_locked_models_tbl.FIRST..l_locked_models_tbl.LAST LOOP
1744 l_all_locked_models_tbl(l_all_locked_models_tbl.COUNT + 1) := l_locked_models_tbl(j);
1745 END LOOP;
1746 END IF;
1747 END IF;
1748 END LOOP;
1749 END IF;
1750
1751 -- call go_generic
1752
1753 CZ_IMP_ALL.go_generic(x_run_id, p_run_id, p_rp_folder_id);
1754 x_status := G_STATUS_SUCCESS;
1755
1756 IF (l_all_locked_models_tbl.COUNT > 0) THEN
1757 cz_security_pvt.unlock_model(
1758 p_api_version => 1.0,
1759 p_commit_flag => FND_API.G_TRUE,
1760 p_models_to_unlock => l_all_locked_models_tbl,
1761 x_return_status => l_return_status,
1762 x_msg_count => l_msg_count,
1763 x_msg_data => l_msg_data);
1764 END IF;
1765
1766 EXCEPTION
1767 WHEN G_INCOMPATIBLE_API THEN
1768 x_status := G_STATUS_ERROR;
1769 l_msg_data := CZ_UTILS.GET_TEXT('CZ_MOP_API_VERSION_ERR', 'CODE_VERSION', l_api_version, 'IN_VERSION', p_api_version);
1770 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_msg_data, fnd_log.LEVEL_ERROR);
1771 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1772 VALUES (l_msg_data, 11276, G_PKG_NAME||'.'||l_api_name, 1, p_run_id, SYSDATE);
1773 COMMIT;
1774 WHEN SESS_NOT_INITIALIZED_EXCP THEN
1775 x_status := G_STATUS_ERROR;
1776 l_msg_data := CZ_UTILS.GET_TEXT('CZ_SESS_NOT_INITIALIZED');
1777 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_msg_data, fnd_log.LEVEL_ERROR);
1778 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1779 VALUES (l_msg_data, 11276, G_PKG_NAME||'.'||l_api_name, 1, p_run_id, SYSDATE);
1780 COMMIT;
1781 WHEN INVALID_ENCL_FLDR_EXCP THEN
1782 x_status := G_STATUS_ERROR;
1783 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_msg_data, fnd_log.LEVEL_ERROR);
1784 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1785 VALUES (l_msg_data, 11276, G_PKG_NAME||'.'||l_api_name, 1, p_run_id, SYSDATE);
1786 COMMIT;
1787 WHEN NO_PRIV_EXCP THEN
1788 x_status := G_STATUS_ERROR;
1789 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_msg_data, fnd_log.LEVEL_ERROR);
1790 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1791 VALUES (l_msg_data, 11276, G_PKG_NAME||'.'||l_api_name, 1, p_run_id, SYSDATE);
1792 COMMIT;
1793 WHEN MODEL_LOCKED_EXCP THEN
1794 x_status := G_STATUS_ERROR;
1795 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_msg_data, fnd_log.LEVEL_ERROR);
1796 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1797 VALUES (l_msg_data, 11276, G_PKG_NAME||'.'||l_api_name, 1, p_run_id, SYSDATE);
1798 COMMIT;
1799 WHEN FAILED_TO_LOCK_MODEL_EXCP THEN
1800 x_status := G_STATUS_ERROR;
1801 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_msg_data, fnd_log.LEVEL_ERROR);
1802 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1803 VALUES (l_msg_data, 11276, G_PKG_NAME||'.'||l_api_name, 1, p_run_id, SYSDATE);
1804 COMMIT;
1805 WHEN MODEL_UNLOCK_EXCP THEN
1806 x_status := G_STATUS_ERROR;
1807 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_msg_data, fnd_log.LEVEL_ERROR);
1808 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1809 VALUES (l_msg_data, 11276, G_PKG_NAME||'.'||l_api_name, 1, p_run_id, SYSDATE);
1810 COMMIT;
1811 WHEN OTHERS THEN
1812 x_status := G_STATUS_ERROR;
1813 l_msg_data := SQLERRM;
1814 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_msg_data, fnd_log.LEVEL_UNEXPECTED);
1815 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
1816 VALUES (l_msg_data, 11276, G_PKG_NAME||'.'||l_api_name, 1, p_run_id, SYSDATE);
1817 COMMIT;
1818 IF (l_all_locked_models_tbl.COUNT > 0) THEN
1819 cz_security_pvt.unlock_model(
1820 p_api_version => 1.0,
1821 p_commit_flag => FND_API.G_TRUE,
1822 p_models_to_unlock => l_all_locked_models_tbl,
1823 x_return_status => l_return_status,
1824 x_msg_count => l_msg_count,
1825 x_msg_data => l_msg_data);
1826 END IF;
1827 END import_generic;
1828 -----------------------------------------------------------
1829 PROCEDURE import_generic (
1830 p_api_version IN NUMBER,
1831 p_run_id IN NUMBER,
1832 p_rp_folder_id IN NUMBER,
1833 p_user_id IN NUMBER,
1834 p_resp_id IN NUMBER,
1835 p_appl_id IN NUMBER,
1836 x_run_id OUT NOCOPY NUMBER,
1837 x_status OUT NOCOPY NUMBER
1838 ) IS
1839 BEGIN
1840 fnd_global.apps_initialize (
1841 p_user_id,
1842 p_resp_id,
1843 p_appl_id
1844 );
1845 import_generic (
1846 p_api_version,
1847 p_run_id,
1848 p_rp_folder_id,
1849 x_run_id,
1850 x_status
1851 );
1852 END import_generic;
1853 -----------------------------------------------------------
1854 /*#
1855 * This is the public interface for force unlock operations on a model in Oracle Configurator
1856 * @param p_api_version Current version of the API is 1.0
1857 * @param p_model_id devl_project_id of the model from cz_devl_projects table
1858 * @param p_unlock_references A value of FND_API.G_TRUE indicates that the child models if any should be
1859 * force unlocked. A value of FND_API.G_FALSE indicates that only the root model
1860 * will be unlocked
1861 * @param p_init_msg_list FND_API.G_TRUE if the API should initialize the FND stack, FND_API.G_FALSE if not.
1862 * @param x_return_status standard FND status. (ex:FND_API.G_RET_STS_SUCCESS )
1863 * @param x_msg_count number of messages on the stack.
1864 * @param x_msg_data standard FND OUT parameter for message. Messages are written to the FND error stack
1865 * @rep:scope public
1866 * @rep:product CZ
1867 * @rep:displayname API for working with force unlock operations on a model
1868 * @rep:lifecycle active
1869 * @rep:compatibility S
1870 * @rep:category BUSINESS_ENTITY CZ_CONFIG_MODEL
1871 */
1872
1873 PROCEDURE force_unlock_model (p_api_version IN NUMBER,
1874 p_model_id IN NUMBER,
1875 p_unlock_references IN VARCHAR2,
1876 p_init_msg_list IN VARCHAR2,
1877 x_return_status OUT NOCOPY VARCHAR2,
1878 x_msg_count OUT NOCOPY NUMBER,
1879 x_msg_data OUT NOCOPY VARCHAR2)
1880 IS
1881
1882 BEGIN
1883 cz_security_pvt.force_unlock_model (p_api_version,
1884 p_model_id,
1885 p_unlock_references,
1886 p_init_msg_list,
1887 x_return_status,
1888 x_msg_count,
1889 x_msg_data);
1890 END force_unlock_model;
1891 ---------------------------------------------------
1892 PROCEDURE force_unlock_model (
1893 p_api_version IN NUMBER,
1894 p_model_id IN NUMBER,
1895 p_unlock_references IN VARCHAR2,
1896 p_init_msg_list IN VARCHAR2,
1897 p_user_id IN NUMBER,
1898 p_resp_id IN NUMBER,
1899 p_appl_id IN NUMBER,
1900 x_return_status OUT NOCOPY VARCHAR2,
1901 x_msg_count OUT NOCOPY NUMBER,
1902 x_msg_data OUT NOCOPY VARCHAR2
1903 ) IS
1904 BEGIN
1905 fnd_global.apps_initialize (
1906 p_user_id,
1907 p_resp_id,
1908 p_appl_id
1909 );
1910 force_unlock_model (
1911 p_api_version,
1912 p_model_id,
1913 p_unlock_references,
1914 p_init_msg_list,
1915 x_return_status,
1916 x_msg_count,
1917 x_msg_data
1918 );
1919 END force_unlock_model;
1920 ---------------------------------------------------
1921 /*#
1922 * This is the public interface for force unlock operations on a UI content template in Oracle Configurator
1923 * @param p_api_version Current version of the API is 1.0
1924 * @param p_template_id Template_id of the template from cz_ui_templates table
1925 * @param p_init_msg_list FND_API.G_TRUE if the API should initialize the FND stack, FND_API.G_FALSE if not.
1926 * @param x_return_status standard FND status. (ex:FND_API.G_RET_STS_SUCCESS )
1927 * @param x_msg_count number of messages on the stack.
1928 * @param x_msg_data standard FND OUT parameter for message. Messages are written to the FND error stack
1929 * @rep:scope public
1930 * @rep:product CZ
1931 * @rep:displayname API for working with force unlock operations on a UI content template
1932 * @rep:lifecycle active
1933 * @rep:compatibility S
1934 * @rep:category BUSINESS_ENTITY CZ_USER_INTERFACE*/
1935
1936 PROCEDURE force_unlock_template (p_api_version IN NUMBER,
1937 p_template_id IN NUMBER,
1938 p_init_msg_list IN VARCHAR2,
1939 x_return_status OUT NOCOPY VARCHAR2,
1940 x_msg_count OUT NOCOPY NUMBER,
1941 x_msg_data OUT NOCOPY VARCHAR2)
1942 IS
1943
1944 BEGIN
1945 cz_security_pvt.force_unlock_template (p_api_version,
1946 p_template_id,
1947 p_init_msg_list,
1948 x_return_status,
1949 x_msg_count,
1950 x_msg_data);
1951 END force_unlock_template;
1952 ---------------------------------------------------
1953 PROCEDURE force_unlock_template (
1954 p_api_version IN NUMBER,
1955 p_template_id IN NUMBER,
1956 p_init_msg_list IN VARCHAR2,
1957 p_user_id IN NUMBER,
1958 p_resp_id IN NUMBER,
1959 p_appl_id IN NUMBER,
1960 x_return_status OUT NOCOPY VARCHAR2,
1961 x_msg_count OUT NOCOPY NUMBER,
1962 x_msg_data OUT NOCOPY VARCHAR2
1963 ) IS
1964 BEGIN
1965 fnd_global.apps_initialize (
1966 p_user_id,
1967 p_resp_id,
1968 p_appl_id
1969 );
1970 force_unlock_template (
1971 p_api_version,
1972 p_template_id,
1973 p_init_msg_list,
1974 x_return_status,
1975 x_msg_count,
1976 x_msg_data
1977 );
1978 END force_unlock_template;
1979
1980 FUNCTION usage_id_from_usage_name (p_api_version IN NUMBER
1981 ,p_usage_name IN VARCHAR2
1982 ,x_return_status OUT NOCOPY VARCHAR2
1983 ,x_msg_count OUT NOCOPY NUMBER
1984 ,x_msg_data OUT NOCOPY VARCHAR2)
1985 RETURN NUMBER
1986 IS
1987 v_usage_id NUMBER;
1988 l_api_version CONSTANT NUMBER := 1.0;
1989 l_api_name CONSTANT VARCHAR2(30) := 'usage_id_from_usage_name';
1990 BEGIN
1991 -- standard call to check for call compatibility
1992 IF (NOT FND_API.compatible_api_call(l_api_version
1993 ,p_api_version
1994 ,l_api_name
1995 ,G_PKG_NAME
1996 )) THEN
1997 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1998 END IF;
1999 SELECT model_usage_id
2000 INTO v_usage_id
2001 FROM CZ_MODEL_USAGES
2002 WHERE LTRIM(RTRIM(UPPER(CZ_MODEL_USAGES.name))) = LTRIM(RTRIM(UPPER(p_usage_name)))
2003 AND cz_model_usages.in_use = '1';
2004
2005 x_return_status := FND_API.G_RET_STS_SUCCESS;
2006 RETURN v_usage_id;
2007 EXCEPTION
2008 WHEN NO_DATA_FOUND THEN
2009 x_return_status:=FND_API.G_RET_STS_ERROR;
2010 FND_MESSAGE.SET_NAME('CZ', 'CZ_USG_NO_USAGE_FOUND');
2011 FND_MSG_PUB.ADD;
2012 fnd_msg_pub.count_and_get(p_count => x_msg_count,
2013 p_data => x_msg_data);
2014 RETURN NULL;
2015
2016 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2017 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2018 fnd_msg_pub.count_and_get(p_count => x_msg_count,
2019 p_data => x_msg_data);
2020 RETURN NULL;
2021 END usage_id_from_usage_name;
2022
2023
2024
2025 Function usage_id_from_usage_name (
2026 p_api_version IN NUMBER,
2027 p_user_id IN NUMBER,
2028 p_resp_id IN NUMBER,
2029 p_appl_id IN NUMBER,
2030 p_usage_name IN VARCHAR2,
2031 x_return_status OUT NOCOPY VARCHAR2,
2032 x_msg_count OUT NOCOPY NUMBER,
2033 x_msg_data OUT NOCOPY VARCHAR2
2034 )
2035 RETURN NUMBER
2036 IS
2037 v_usage_id NUMBER;
2038 BEGIN
2039 fnd_global.apps_initialize (
2040 p_user_id,
2041 p_resp_id,
2042 p_appl_id
2043 );
2044 v_usage_id:=usage_id_from_usage_name (p_api_version
2045 ,p_usage_name
2046 ,x_return_status
2047 ,x_msg_count
2048 ,x_msg_data);
2049 RETURN v_usage_id;
2050 END usage_id_from_usage_name;
2051 ------------------------------------------------------------------------------------------------
2052 /*
2053 * Public API for Model Migration.
2054 * @param p_request_id This is the CZ_MODEL_PUBLICATIONS, MIGRATION_GROUP_ID of the migration request.
2055 * Migration request is created by Developer and contains the list of all models selected
2056 * for Migration from the source's Configurator Repository, target Instance name and
2057 * target Repository Folder.
2058 * @param p_userid Standard parameters required for locking. Represent calling user.
2059 * @param p_respid Standard parameters required for locking. Represent calling responsibility.
2060 * @param p_applid Standard parameters required for locking. Represent calling application.
2061 * @param p_run_id Number identifying the session. If left NULL, the API will generate the number and
2062 * return it in x_run_id.
2063 * @param x_run_id Output parameter containing internally generated session identifier if p_run_id
2064 * was NULL, otherwise equal to p_run_id.
2065 */
2066
2067 PROCEDURE migrate_models(p_api_version IN NUMBER,
2068 p_request_id IN NUMBER,
2069 p_user_id IN NUMBER,
2070 p_resp_id IN NUMBER,
2071 p_appl_id IN NUMBER,
2072 p_run_id IN NUMBER,
2073 x_run_id OUT NOCOPY NUMBER,
2074 x_status OUT NOCOPY VARCHAR2
2075 ) IS
2076
2077 l_api_name CONSTANT VARCHAR2(30) := 'migrate_models';
2078 l_api_version CONSTANT NUMBER := 1.0;
2079 l_errbuf VARCHAR2(2000);
2080 BEGIN
2081
2082 IF(NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME))THEN
2083
2084 RAISE G_INCOMPATIBLE_API;
2085 END IF;
2086
2087 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);
2088
2089 EXCEPTION
2090 WHEN G_INCOMPATIBLE_API THEN
2091 x_status := G_STATUS_ERROR;
2092 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_API_VERSION_ERR', 'CODE_VERSION', l_api_version, 'IN_VERSION', p_api_version);
2093 -- cz_utils.log_report(G_PKG_NAME, l_api_name, null, l_errbuf, fnd_log.LEVEL_ERROR);
2094 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, run_id, logtime)
2095 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, x_run_id, SYSDATE);
2096 COMMIT;
2097 END;
2098 ---------------------------------------------------------------------------------------
2099 -- added by jonatara:bug6375827
2100 PROCEDURE create_publication_request (
2101 p_api_version IN NUMBER,
2102 p_model_id IN NUMBER,
2103 p_ui_def_id IN NUMBER,
2104 p_publication_mode IN VARCHAR2, -- DEFAULT 'P'
2105 p_server_id IN NUMBER,
2106 p_appl_id_tbl IN CZ_PB_MGR.t_ref,
2107 p_usg_id_tbl IN CZ_PB_MGR.t_ref, -- DEFAULT -1 (ie., 'Any Usage')
2108 p_lang_tbl IN CZ_PB_MGR.t_lang_code, -- DEFAULT 'US'
2109 p_start_date IN DATE, -- DEFAULT CZ_UTILS.epoch_begin
2110 p_end_date IN DATE, -- DEFAULT CZ_UTILS.CZ_UTILS.epoch_end
2111 x_publication_id OUT NOCOPY NUMBER,
2112 x_return_status OUT NOCOPY VARCHAR2,
2113 x_msg_count OUT NOCOPY NUMBER,
2114 x_msg_data OUT NOCOPY VARCHAR2
2115 ) IS
2116 l_api_name CONSTANT VARCHAR2(30) := 'create_publication_request';
2117 l_api_version CONSTANT NUMBER := 1.0;
2118 l_status VARCHAR2(3);
2119 l_errbuf VARCHAR2(2000);
2120
2121 BEGIN
2122
2123 IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
2124 RAISE G_INCOMPATIBLE_API;
2125 END IF;
2126 cz_pb_mgr.create_publication_request(
2127 p_model_id,
2128 p_ui_def_id,
2129 p_publication_mode,
2130 p_server_id,
2131 p_appl_id_tbl,
2132 p_usg_id_tbl,
2133 p_lang_tbl,
2134 p_start_date,
2135 p_end_date,
2136 x_publication_id,
2137 l_status,
2138 x_msg_count,
2139 x_msg_data
2140 );
2141 IF l_status = FND_API.G_RET_STS_SUCCESS THEN
2142 x_return_status := G_STATUS_SUCCESS;
2143 ELSE
2144 x_return_status := G_STATUS_ERROR;
2145 END IF;
2146 EXCEPTION
2147 WHEN G_INCOMPATIBLE_API THEN
2148 x_return_status := G_STATUS_ERROR;
2149 l_errbuf := CZ_UTILS.GET_TEXT('CZ_MOP_API_VERSION_ERR', 'CODE_VERSION', l_api_version, 'IN_VERSION', p_api_version);
2150 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, logtime)
2151 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, SYSDATE);
2152 COMMIT;
2153 WHEN OTHERS THEN
2154 x_return_status := G_STATUS_ERROR;
2155 l_errbuf := SQLERRM;
2156 INSERT INTO cz_db_logs (message, statuscode, caller, urgency, logtime)
2157 VALUES (l_errbuf, 11276, G_PKG_NAME||'.'||l_api_name, 1, SYSDATE);
2158 COMMIT;
2159 END create_publication_request;
2160
2161 ------------------------------------------------------------------------------------------------
2162 PROCEDURE create_publication_request (
2163 p_api_version IN NUMBER,
2164 p_model_id IN NUMBER,
2165 p_ui_def_id IN NUMBER,
2166 p_publication_mode IN VARCHAR2, -- DEFAULT 'P'
2167 p_server_id IN NUMBER,
2168 p_appl_id_tbl IN CZ_PB_MGR.t_ref,
2169 p_usg_id_tbl IN CZ_PB_MGR.t_ref, -- DEFAULT -1 (ie., 'Any Usage')
2170 p_lang_tbl IN CZ_PB_MGR.t_lang_code, -- DEFAULT 'US'
2171 p_start_date IN DATE, -- DEFAULT CZ_UTILS.epoch_begin
2172 p_end_date IN DATE, -- DEFAULT CZ_UTILS.CZ_UTILS.epoch_end
2173 p_user_id IN NUMBER,
2174 p_resp_id IN NUMBER,
2175 p_appl_id IN NUMBER,
2176 x_publication_id OUT NOCOPY NUMBER,
2177 x_return_status OUT NOCOPY VARCHAR2,
2178 x_msg_count OUT NOCOPY NUMBER,
2179 x_msg_data OUT NOCOPY VARCHAR2
2180 ) IS
2181 l_api_name CONSTANT VARCHAR2(30) := 'create_publication_request';
2182 l_api_version CONSTANT NUMBER := 1.0;
2183 l_status VARCHAR2(3);
2184 l_errbuf VARCHAR2(2000);
2185 BEGIN
2186 fnd_global.apps_initialize (p_user_id, p_resp_id, p_appl_id);
2187 create_publication_request (
2188 p_api_version,
2189 p_model_id,
2190 p_ui_def_id,
2191 p_publication_mode,
2192 p_server_id,
2193 p_appl_id_tbl,
2194 p_usg_id_tbl,
2195 p_lang_tbl,
2196 p_start_date,
2197 p_end_date,
2198 x_publication_id,
2199 x_return_status,
2200 x_msg_count,
2201 x_msg_data
2202 );
2203 END create_publication_request;
2204 ------------------------------------------------------------------------------------------------
2205 END CZ_modelOperations_pub;