[Home] [Help]
PACKAGE BODY: APPS.IEC_RLC_CTRL_PVT
Source
1 PACKAGE BODY IEC_RLC_CTRL_PVT AS
2 /* $Header: IECVRLCB.pls 115.19 2002/02/21 13:11:45 pkm ship $ */
3
4
5 PROCEDURE RELEASE_CONTROL
6 (P_LIST_ENTRY_ID_TAB IEC_CPN_RLSE_STTGY_PVT.LIST_ENTRY_ID
7 ,P_LIST_HEADER_ID NUMBER
8 ,P_RLSE_CTRL_ID NUMBER
9 ,P_VIEW_NAME VARCHAR2
10 ,X_LIST_ENTRY_ID_TAB OUT IEC_CPN_RLSE_STTGY_PVT.LIST_ENTRY_ID
11 )
12 AS
13 l_where_clause VARCHAR2(4000) := null;
14 l_list_entry_id_list VARCHAR2(4000) := null;
15 l_list_entry_id_count NUMBER(10) := 0;
16 l_rlse_stmt VARCHAR2(4000) := null;
17 l_dyn_cursor_id INTEGER;
18 l_dummy INTEGER;
19 l_use_count NUMBER :=1;
20 l_list_entry_id_col NUMBER(15);
21 BEGIN
22 if(P_RLSE_CTRL_ID > 0 ) then
23 IEC_WHERECLAUSE_PVT.getWhereClause(P_RLSE_CTRL_ID,'RLC',l_where_clause);
24 if(l_where_clause IS NOT NULL) then
25 if(P_LIST_ENTRY_ID_TAB.count > 0) then
26 l_list_entry_id_list := '(';
27 for k in 1..P_LIST_ENTRY_ID_TAB.count
28 loop
29 if(k >1)
30 then
31 l_list_entry_id_list := l_list_entry_id_list || ',';
32 end if;
33 l_list_entry_id_list := l_list_entry_id_list || ' '|| P_LIST_ENTRY_ID_TAB(K);
34 l_list_entry_id_count := l_list_entry_id_count + 1;
35 end loop;
36
37 l_list_entry_id_list := l_list_entry_id_list ||')';
38 l_rlse_stmt := 'select list_entry_id from '|| P_VIEW_NAME
39 || ' where list_entry_id in '|| l_list_entry_id_list
40 || ' and list_header_id = '|| P_LIST_HEADER_ID || ' and ('||
41 l_where_clause || ' )';
42 -- DBMS_OUTPUT.PUT_LINE('after insert stmt');
43 l_dyn_cursor_id := DBMS_SQL.OPEN_CURSOR;
44 DBMS_SQL.PARSE(l_dyn_cursor_id,l_rlse_stmt,DBMS_SQL.V7);
45 DBMS_SQL.DEFINE_COLUMN(l_dyn_cursor_id,1,l_list_entry_id_col);
46 l_dummy := DBMS_SQL.EXECUTE(l_dyn_cursor_id);
47
48 loop
49 if DBMS_SQL.FETCH_ROWs(l_dyn_cursor_id) = 0
50 then
51 l_use_count := -1;
52 exit;
53 end if;
54
55 DBMS_SQL.column_value(l_dyn_cursor_id,1,l_list_entry_id_col);
56 X_LIST_ENTRY_ID_TAB(l_use_count) := l_list_entry_id_col;
57 l_use_count := l_use_count + 1;
58 end loop;
59
60 DBMS_SQL.CLOSE_CURSOR(l_dyn_cursor_id);
61
62 end if;
63 end if;
64 end if;
65 Exception
66 when NO_DATA_FOUND then
67 if DBMS_SQL.IS_OPEN(l_dyn_cursor_id)
68 then
69 DBMS_SQL.CLOSE_CURSOR(l_dyn_cursor_id);
70 end if;
71 when OTHERS then
72 if DBMS_SQL.IS_OPEN(l_dyn_cursor_id)
73 then
74 DBMS_SQL.CLOSE_CURSOR(l_dyn_cursor_id);
75 end if;
76 raise;
77 END;
78
79 PROCEDURE RELEASE_CONTROL_REASSIGNALL
80 (P_LIST_HEADER_ID NUMBER
81 ,P_DO_NOT_USE_REASON NUMBER
82 )
83 AS
84 BEGIN
85 UPDATE AMS_LIST_ENTRIES
86 set DO_NOT_USE_FLAG='N',DO_NOT_USE_REASON=null where LIST_HEADER_ID= P_LIST_HEADER_ID and DO_NOT_USE_FLAG='Y' and DO_NOT_USE_REASON=P_DO_NOT_USE_REASON;
87 commit;
88 END;
89
90
91 PROCEDURE RELEASE_CONTROL_REASSIGN
92 (P_LIST_HEADER_ID NUMBER
93 )
94 AS
95 BEGIN
96 RELEASE_CONTROL_REASSIGNALL(P_LIST_HEADER_ID,8);
97 END;
98
99 PROCEDURE RELEASE_CONTROL_MODIFY
100 (P_RLSE_CTRL_ID NUMBER
101 )
102 AS
103 cursor c_list_rlse is
104 select list_header_id from ams_list_headers_all where release_control_alg_id = P_RLSE_CTRL_ID;
105 BEGIN
106 FOR v_list_rlse IN c_list_rlse LOOP
107 RELEASE_CONTROL_REASSIGN(v_list_rlse.list_header_id);
108 END LOOP;
109 END;
110
111 END IEC_RLC_CTRL_PVT;
112