DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKE_AUTHORING_UTILS

Source


1 PACKAGE BODY OKE_AUTHORING_UTILS AS
2 /* $Header: OKEAUTLB.pls 115.0 2004/05/14 20:11:43 who noship $ */
3 
4 
5 
6   FUNCTION COLUMN_EXISTS
7   ( p_object_code VARCHAR2
8   , p_column_name VARCHAR2
9   ) RETURN BOOLEAN IS
10     l_view_name varchar2(200);
11     l_found NUMBER;
12     i NUMBER;
13 
14     Cursor l_jtfv_csr Is
15       SELECT from_table
16       FROM jtf_objects_vl
17       WHERE object_code = p_object_code
18       AND sysdate between nvl(start_date_active , sysdate-1)
19                   and     nvl(end_date_active , sysdate+1);
20 
21     Cursor l_jtf_source_csr Is
22         SELECT 1 FROM USER_TAB_COLUMNS
23         WHERE table_name = l_view_name
24         AND column_name = p_column_name;
25 
26   BEGIN
27     open l_jtfv_csr;
28     fetch l_jtfv_csr into l_view_name;
29     close l_jtfv_csr;
30 
31     -- Trim any space and character after that
32     i := INSTR(l_view_name,' ');
33     If (i > 0) Then
34         l_view_name := substr(l_view_name,1,i - 1);
35     End If;
36 
37     open l_jtf_source_csr;
38     fetch l_jtf_source_csr into l_found;
39     close l_jtf_source_csr;
40     If (l_found = 1) Then
41         return TRUE;
42     Else
43         return FALSE;
44     End If;
45   EXCEPTION
46     when NO_DATA_FOUND Then
47       If (l_jtfv_csr%ISOPEN) Then
48     close l_jtfv_csr;
49       End If;
50       If (l_jtf_source_csr%ISOPEN) Then
51     close l_jtf_source_csr;
52       End If;
53       return FALSE;
54 
55     when OTHERS then
56       If (l_jtfv_csr%ISOPEN) Then
57     close l_jtfv_csr;
58       End If;
59       If (l_jtf_source_csr%ISOPEN) Then
60     close l_jtf_source_csr;
61       End If;
62       return FALSE;
63   END;
64 
65 /** this part of the code attempts to retrieve party_id from
66     the parent party role **/
67 
68 FUNCTION Retrieve_Party_ID (P_jtot_object_code IN   VARCHAR2,
69 			    P_object_id1       IN   VARCHAR2,
70 			    P_object_id2       IN   VARCHAR2) return VARCHAR2
71 IS
72 
73 i		NUMBER;
74 l_sql_stmt 	VARCHAR2(1000);
75 v_cursorID		INTEGER;
76 v_party_id		VARCHAR2(100) := '00';
77 v_dummy			INTEGER;
78 
79 BEGIN
80 
81 
82 	l_sql_stmt := OKC_UTIL.GET_SQL_FROM_JTFV(P_jtot_object_code);
83 
84 	IF l_sql_stmt is null THEN
85 	  return '-1';
86 	END IF;
87 
88 	IF (column_exists(p_jtot_object_code,'PARTY_ID')) THEN
89 
90         i := INSTR(l_sql_stmt,'WHERE');
91         If (i > 0) Then
92            l_sql_stmt := SUBSTR(l_sql_stmt,1, i + 5) ||
93          ' ID1 = ' ||''''|| P_OBJECT_ID1 ||''''|| ' AND ' ||
94 	 ' ID2 = ' ||''''|| P_OBJECT_ID2 ||'''';
95 -- || ' AND ' ||
96 --          SUBSTR(l_sql_stmt,i + 5);
97         Else
98            -- no where clause. Add before ORDER BY if any
99            i := INSTR(l_sql_stmt,'ORDER BY');
100            If (i > 0) Then
101             l_sql_stmt := SUBSTR(l_sql_stmt,1,i-1) ||
102             ' WHERE ID1 = ' ||''''|| P_OBJECT_ID1 ||''''|| ' AND '||
103 	    ' ID2 = ' ||''''|| P_OBJECT_ID2 ||''''||
104             ' ' || SUBSTR(l_sql_stmt,i);
105            Else
106         -- no where and no order by
107         l_sql_stmt := l_sql_stmt || ' WHERE ID1 = '||''''|| P_OBJECT_ID1 ||''''
108 		|| ' AND '|| ' ID2 = '||'''' || P_OBJECT_ID2 ||'''';
109            End If;
110         End If;
111 
112 	END IF;
113 
114 	l_sql_stmt := 'SELECT PARTY_ID FROM '|| l_sql_stmt;
115 
116 	v_cursorID := DBMS_SQL.OPEN_CURSOR;
117 	dbms_output.put_line(l_sql_stmt);
118 	DBMS_SQL.PARSE(v_cursorID,l_sql_stmt,dbms_sql.native);
119 	DBMS_SQL.DEFINE_COLUMN(v_cursorID,1,v_party_id,100);
120 	v_dummy := DBMS_SQL.EXECUTE(v_cursorID);
121 	IF DBMS_SQL.FETCH_ROWS(v_cursorID)= 0 THEN
122 	 RETURN '-1';
123 	END IF;
124 	DBMS_SQL.COLUMN_VALUE(v_cursorID,1,v_party_id);
125 	DBMS_SQL.CLOSE_CURSOR(v_cursorID);
126 
127 	return v_party_id;
128 
129 EXCEPTION
130   WHEN OTHERS THEN
131     RETURN '-1';
132 
133 END;
134 
135 
136 END OKE_AUTHORING_UTILS;