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