[Home] [Help]
PACKAGE BODY: APPS.FND_OAM_DSCFG_OBJECTS_PKG
Source
1 PACKAGE BODY FND_OAM_DSCFG_OBJECTS_PKG as
2 /* $Header: AFOAMDSCOBJB.pls 120.2 2006/01/17 11:36 ilawler noship $ */
3
4 ----------------------------------------
5 -- Private Body Constants
6 ----------------------------------------
7 PKG_NAME CONSTANT VARCHAR2(20) := 'DSCFG_OBJECTS_PKG.';
8
9 --stateless, only contains a table handler to insert a new object with no properties
10
11 ----------------------------------------
12 -- Public/Private Procedures/Functions
13 ----------------------------------------
14
15 -- Public
16 PROCEDURE ADD_OBJECT(p_object_type IN VARCHAR2,
17 p_parent_object_id IN NUMBER,
18 p_source_type IN VARCHAR2,
19 p_source_id IN NUMBER,
20 p_errors_found_flag IN VARCHAR2,
21 p_message IN VARCHAR2,
22 x_object_id OUT NOCOPY NUMBER)
23 IS
24 l_ctxt VARCHAR2(60) := PKG_NAME||'ADD_OBJECT';
25
26 l_config_instance_id NUMBER;
27 l_proc_id NUMBER := NULL;
28
29 l_object_id NUMBER;
30 BEGIN
31 fnd_oam_debug.log(2, l_ctxt, 'ENTER');
32
33 --get the config_instance_id, throws error if not initialized
34 l_config_instance_id := FND_OAM_DSCFG_INSTANCES_PKG.GET_CURRENT_ID;
35
36 --try to get the import proc id
37 IF FND_OAM_DSCFG_PROCS_PKG.IS_INITIALIZED THEN
38 l_proc_id := FND_OAM_DSCFG_PROCS_PKG.GET_CURRENT_ID;
39 END IF;
40
41 --do the insert
42 INSERT INTO fnd_oam_dscfg_objects (OBJECT_ID,
43 CONFIG_INSTANCE_ID,
44 OBJECT_TYPE,
45 PARENT_OBJECT_ID,
46 SOURCE_PROC_ID,
47 SOURCE_TYPE,
48 SOURCE_ID,
49 ERRORS_FOUND_FLAG,
50 MESSAGE,
51 CREATED_BY,
52 CREATION_DATE,
53 LAST_UPDATED_BY,
54 LAST_UPDATE_DATE,
55 LAST_UPDATE_LOGIN)
56 VALUES (FND_OAM_DSCFG_OBJECTS_S.NEXTVAL,
57 l_config_instance_id,
58 p_object_type,
59 p_parent_object_id,
60 l_proc_id,
61 p_source_type,
62 p_source_id,
63 p_errors_found_flag,
64 p_message,
65 FND_GLOBAL.USER_ID,
66 SYSDATE,
67 FND_GLOBAL.USER_ID,
68 SYSDATE,
69 FND_GLOBAL.USER_ID)
70 RETURNING OBJECT_ID INTO l_object_id;
71
72 x_object_id := l_object_id;
73
74 fnd_oam_debug.log(2, l_ctxt, 'EXIT');
75 EXCEPTION
76 WHEN NO_DATA_FOUND THEN
77 fnd_oam_debug.log(2, l_ctxt, 'EXIT');
78 RAISE;
79 WHEN OTHERS THEN
80 fnd_oam_debug.log(6, l_ctxt, 'Unexpected Error: (Code('||SQLCODE||'), Message("'||SQLERRM||'"))');
81 fnd_oam_debug.log(2, l_ctxt, 'EXIT');
82 RAISE;
83 END;
84
85 -- Public
86 PROCEDURE GET_OBJECTS_FOR_TYPE(p_object_type IN VARCHAR2,
87 x_object_ids OUT NOCOPY DBMS_SQL.NUMBER_TABLE)
88 IS
89 l_ctxt VARCHAR2(60) := PKG_NAME||'GET_OBJECTS_FOR_TYPE';
90
91 l_object_ids DBMS_SQL.NUMBER_TABLE;
92 BEGIN
93 fnd_oam_debug.log(2, l_ctxt, 'ENTER');
94
95 --do the fetch
96 SELECT object_id
97 BULK COLLECT INTO l_object_ids
98 FROM fnd_oam_dscfg_objects
99 WHERE object_type = p_object_type
100 ORDER BY object_id asc;
101
102 x_object_ids := l_object_ids;
103
104 fnd_oam_debug.log(2, l_ctxt, 'EXIT');
105 EXCEPTION
106 WHEN OTHERS THEN
107 fnd_oam_debug.log(6, l_ctxt, 'Unexpected Error: (Code('||SQLCODE||'), Message("'||SQLERRM||'"))');
108 fnd_oam_debug.log(2, l_ctxt, 'EXIT');
109 RAISE;
110 END;
111
112 -- Public
113 PROCEDURE GET_OBJECTS_FOR_TYPE(p_object_type IN VARCHAR2,
114 p_errors_found_flag IN VARCHAR2,
115 x_object_ids OUT NOCOPY DBMS_SQL.NUMBER_TABLE)
116 IS
117 l_ctxt VARCHAR2(60) := PKG_NAME||'GET_OBJECTS_FOR_TYPE(errors_found_flag)';
118
119 l_object_ids DBMS_SQL.NUMBER_TABLE;
120 BEGIN
121 fnd_oam_debug.log(2, l_ctxt, 'ENTER');
122
123 --do the fetch
124 IF p_errors_found_flag IS NULL THEN
125 SELECT object_id
126 BULK COLLECT INTO l_object_ids
127 FROM fnd_oam_dscfg_objects
128 WHERE object_type = p_object_type
129 AND errors_found_flag IS NULL
130 ORDER BY object_id asc;
131 ELSE
132 SELECT object_id
133 BULK COLLECT INTO l_object_ids
134 FROM fnd_oam_dscfg_objects
135 WHERE object_type = p_object_type
136 AND errors_found_flag = p_errors_found_flag
137 ORDER BY object_id asc;
138 END IF;
139
140 x_object_ids := l_object_ids;
141
142 fnd_oam_debug.log(2, l_ctxt, 'EXIT');
143 EXCEPTION
144 WHEN OTHERS THEN
145 fnd_oam_debug.log(6, l_ctxt, 'Unexpected Error: (Code('||SQLCODE||'), Message("'||SQLERRM||'"))');
146 fnd_oam_debug.log(2, l_ctxt, 'EXIT');
147 RAISE;
148 END;
149
150 -- Public
151 FUNCTION DELETE_OBJECT(p_object_id IN NUMBER,
152 p_recurse IN VARCHAR2)
153 RETURN BOOLEAN
154 IS
155 l_ctxt VARCHAR2(60) := PKG_NAME||'DELETE_OBJECT';
156
157 l_prop_ids DBMS_SQL.NUMBER_TABLE;
158
159 k NUMBER;
160 l_failed BOOLEAN := FALSE;
161 BEGIN
162 fnd_oam_debug.log(2, l_ctxt, 'ENTER');
163
164 --first nuke the properties
165 IF p_recurse IS NOT NULL AND p_recurse = FND_API.G_TRUE THEN
166 --delete all the leaf properties at once.
167 IF NOT FND_OAM_DSCFG_PROPERTIES_PKG.DELETE_PROPERTIES(FND_OAM_DSCFG_API_PKG.G_TYPE_OBJECT,
168 p_object_id) THEN
169 RETURN FALSE;
170 END IF;
171 END IF;
172
173 --now delete the object
174 DELETE FROM fnd_oam_dscfg_objects
175 WHERE object_id = p_object_id;
176
177 --success
178 fnd_oam_debug.log(2, l_ctxt, 'EXIT');
179 RETURN TRUE;
180 EXCEPTION
181 WHEN OTHERS THEN
182 fnd_oam_debug.log(6, l_ctxt, 'Unexpected Error: (Code('||SQLCODE||'), Message("'||SQLERRM||'"))');
183 fnd_oam_debug.log(2, l_ctxt, 'EXIT');
184 RETURN FALSE;
185 END;
186
187 END FND_OAM_DSCFG_OBJECTS_PKG;