DBA Data[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;