[Home] [Help]
PACKAGE BODY: APPS.AMS_COLLAB_ASSOC_PVT
Source
1 PACKAGE BODY AMS_Collab_assoc_PVT as
2 /* $Header: amsvcolb.pls 120.0.12000000.2 2007/08/03 12:52:36 amlal ship $ */
3 -- ===============================================================
4 -- Start of Comments
5 -- Package name
6 -- AMS_Collab_assoc_PVT
7 -- Purpose
8 --
9 -- History
10
11 -- NOTE
12 --
13 -- End of Comments
14 -- ===============================================================
15
16
17 G_PKG_NAME CONSTANT VARCHAR2(30):= 'AMS_Collab_assoc_PVT';
18 G_FILE_NAME CONSTANT VARCHAR2(12) := 'amsvconb.pls';
19 G_module_name constant varchar2(100):='oracle.apps.ams.plsql.'||G_PKG_NAME;
20
21 -- Hint: Primary key needs to be returned.
22 AMS_DEBUG_HIGH_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
23 AMS_DEBUG_LOW_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
24 AMS_DEBUG_MEDIUM_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
25
26
27 AMS_LOG_PROCEDURE constant number := FND_LOG.LEVEL_PROCEDURE;
28 AMS_LOG_EXCEPTION constant Number := FND_LOG.LEVEL_EXCEPTION;
29 AMS_LOG_STATEMENT constant Number := FND_LOG.LEVEL_STATEMENT;
30
31 AMS_LOG_PROCEDURE_ON boolean := AMS_UTILITY_PVT.logging_enabled(AMS_LOG_PROCEDURE);
32 AMS_LOG_EXCEPTION_ON boolean := AMS_UTILITY_PVT.logging_enabled(AMS_LOG_EXCEPTION);
33 AMS_LOG_STATEMENT_ON boolean := AMS_UTILITY_PVT.logging_enabled(AMS_LOG_STATEMENT);
34
35
36
37 PROCEDURE Create_collab_Assoc(
38 p_api_version_number IN NUMBER,
39 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
40 p_commit IN VARCHAR2 := FND_API.G_FALSE,
41 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
42
43 x_return_status OUT NOCOPY VARCHAR2,
44 x_msg_count OUT NOCOPY NUMBER,
45 x_msg_data OUT NOCOPY VARCHAR2,
46
47 p_collab_assoc_rec_type IN collab_assoc_rec_type,
48 x_collab_item_id OUT NOCOPY NUMBER
49 )
50
51 IS
52 L_API_NAME CONSTANT VARCHAR2(30) := 'Create_collab_Assoc';
53 l_full_name Constant varchar2(60) := g_pkg_name||'.'||l_api_name;
54 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
55 l_return_status_full VARCHAR2(1);
56 l_object_version_number NUMBER := 1;
57 l_org_id NUMBER := FND_API.G_MISS_NUM;
58 l_CONTACT_POINT_ID NUMBER;
59 l_dummy NUMBER;
60
61 l_cnt_point_rec_type AMS_Cnt_Point_PVT.cnt_point_rec_type ;
62
63 CURSOR c_script_name(p_script_id IN NUMBER)
64 IS
65 select dscript_name
66 from ies_deployed_scripts
67 where dscript_id = p_script_id;
68
69
70 CURSOR c_template_name(p_template_id IN NUMBER)
71 IS
72 select template_name
73 from PRP_templates_vl
74 where template_id = p_template_id;
75
76 l_collab_value_name varchar2(256);
77
78 CURSOR C_assoc_id
79 IS
80 SELECT association_id
81 from ibc_associations
82 where association_type_code = 'AMS_COLB'
83 and associated_object_val1 =to_char(p_collab_assoc_rec_type.obj_id)
84 and associated_object_val2 = p_collab_assoc_rec_type.obj_type;
85
86 BEGIN
87 -- Standard Start of API savepoint
88 SAVEPOINT Create_collab_Assoc_PVT;
89 IF (AMS_LOG_PROCEDURE_ON) THEN
90 AMS_UTILITY_PVT.debug_message(AMS_LOG_PROCEDURE,G_module_name,l_full_name||':Start');
91 END IF;
92
93 IF (AMS_DEBUG_HIGH_ON) THEN
94 AMS_UTILITY_PVT.debug_message('Save point : Create_collab_Assoc_PVT created');
95 END IF;
96
97 -- Standard call to check for call compatibility.
98 IF NOT FND_API.Compatible_API_Call ( L_API_VERSION_NUMBER,
99 p_api_version_number,
100 l_api_name,
101 G_PKG_NAME)
102 THEN
103 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
104 END IF;
105
106 -- Initialize message list if p_init_msg_list is set to TRUE.
107 IF FND_API.to_Boolean( p_init_msg_list )
108 THEN
109 FND_MSG_PUB.initialize;
110 END IF;
111
112 -- Debug Message
113 IF (AMS_LOG_STATEMENT_ON) THEN
114 AMS_UTILITY_PVT.debug_message( AMS_LOG_STATEMENT
115 ,G_module_name,
116 'p_collab_assoc_rec_type.Collab_type'||p_collab_assoc_rec_type.Collab_type);
117 END IF;
118
119 -- Initialize API return status to SUCCESS
120 x_return_status := FND_API.G_RET_STS_SUCCESS;
121
122 IF p_collab_assoc_rec_type.Collab_type is NOT null
123 THEN
124 IF p_collab_assoc_rec_type.Collab_type = 'AMS_CONTENT'
125 THEN
126
127 IBC_ASSOCIATIONS_GRP.Create_Association (
128 p_api_version => 1.0,
129 p_commit => FND_API.G_FALSE,
130 p_assoc_type_code => 'AMS_COLB',
131 p_assoc_object1 => p_collab_assoc_rec_type.obj_id,
132 p_assoc_object2 => p_collab_assoc_rec_type.obj_type, -- bug:4384746 created for midtab
133 p_content_item_id => p_collab_assoc_rec_type.collab_assoc_id,
134 x_return_status => x_return_status,
135 x_msg_count => x_msg_count,
136 x_msg_data => x_msg_data
137 );
138 ELSIF ( p_collab_assoc_rec_type.Collab_type = 'INBOUND_SCRIPT'
139 OR p_collab_assoc_rec_type.Collab_type = 'AMS_PROPOSAL_TEMPLATE')
140 THEN
141
142 l_cnt_point_rec_type.arc_contact_used_by := p_collab_assoc_rec_type.obj_type;
143 l_cnt_point_rec_type.act_contact_used_by_id := p_collab_assoc_rec_type.obj_id;
144 l_cnt_point_rec_type.contact_point_type := p_collab_assoc_rec_type.Collab_type;
145 l_cnt_point_rec_type.contact_point_value := p_collab_assoc_rec_type.collab_assoc_value;
146 l_cnt_point_rec_type.contact_point_value_id := p_collab_assoc_rec_type.collab_assoc_id;
147
148 IF (p_collab_assoc_rec_type.collab_assoc_value IS NULL
149 OR p_collab_assoc_rec_type.collab_assoc_value = FND_API.g_miss_char)
150 THEN
151
152 IF p_collab_assoc_rec_type.Collab_type = 'INBOUND_SCRIPT'
153 THEN
154 OPEN c_script_name(p_collab_assoc_rec_type.collab_assoc_id);
155 FETCH c_script_name INTO l_collab_value_name;
156 CLOSE c_script_name;
157 ELSIF p_collab_assoc_rec_type.Collab_type = 'AMS_PROPOSAL_TEMPLATE'
158 THEN
159 OPEN c_template_name(p_collab_assoc_rec_type.collab_assoc_id);
160 FETCH c_template_name INTO l_collab_value_name;
161 CLOSE c_template_name;
162 END IF;
163 l_cnt_point_rec_type.contact_point_value := l_collab_value_name;
164 END IF;
165
166 AMS_Cnt_Point_PVT.Create_Cnt_Point(
167 p_api_version_number => 1.0,
168 p_init_msg_list => FND_API.G_FALSE,
169 p_commit => FND_API.G_FALSE,
170 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
171 x_return_status => x_return_status,
172 x_msg_count => x_msg_count,
173 x_msg_data => x_msg_data,
174 p_cnt_point_rec => l_cnt_point_rec_type,
175 x_contact_point_id =>x_collab_item_id
176 );
177 END IF;
178
179 IF x_return_status = FND_API.g_ret_sts_error THEN
180 RAISE FND_API.g_exc_error;
181 ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
182 RAISE FND_API.g_exc_unexpected_error;
183 END IF;
184
185 IF p_collab_assoc_rec_type.Collab_type = 'AMS_CONTENT'
186 THEN
187 OPEN C_assoc_id;
188 FETCH C_assoc_id into x_collab_item_id;
189 CLOSE C_assoc_id;
190 END IF;
191
192 END IF; -- collab_type
193 --
194 -- End of API body
195 --
196 -- Standard check for p_commit
197 IF FND_API.to_Boolean( p_commit )
198 THEN
199 COMMIT WORK;
200 END IF;
201
202 -- Debug Message
203 IF (AMS_DEBUG_HIGH_ON) THEN
204 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
205 END IF;
206
207 -- Standard call to get message count and if count is 1, get message info.
208 FND_MSG_PUB.Count_And_Get
209 (p_count => x_msg_count,
210 p_data => x_msg_data
211 );
212 IF (AMS_LOG_PROCEDURE_ON) THEN
213 AMS_UTILITY_PVT.debug_message(AMS_LOG_PROCEDURE,G_module_name,l_full_name||':end');
214 END IF;
215
216 EXCEPTION
217
218 WHEN AMS_Utility_PVT.resource_locked THEN
219 x_return_status := FND_API.g_ret_sts_error;
220 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
221
222 WHEN FND_API.G_EXC_ERROR THEN
223 ROLLBACK TO Create_collab_Assoc_PVT;
224 x_return_status := FND_API.G_RET_STS_ERROR;
225 -- Standard call to get message count and if count=1, get the message
226 FND_MSG_PUB.Count_And_Get (
227 p_encoded => FND_API.G_FALSE,
228 p_count => x_msg_count,
229 p_data => x_msg_data
230 );
231
232 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
233 ROLLBACK TO Create_collab_Assoc_PVT;
234 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
235 -- Standard call to get message count and if count=1, get the message
236 FND_MSG_PUB.Count_And_Get (
237 p_encoded => FND_API.G_FALSE,
238 p_count => x_msg_count,
239 p_data => x_msg_data
240 );
241
242 WHEN OTHERS THEN
243 ROLLBACK TO Create_collab_Assoc_PVT;
244 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
245 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
246 THEN
247 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
248 END IF;
249 -- Standard call to get message count and if count=1, get the message
250 FND_MSG_PUB.Count_And_Get (
251 p_encoded => FND_API.G_FALSE,
252 p_count => x_msg_count,
253 p_data => x_msg_data
254 );
255 End Create_collab_Assoc;
256
257 END AMS_Collab_assoc_PVT;