DBA Data[Home] [Help]

PACKAGE BODY: APPS.PRP_IBC_MIGRATION_INT

Source


1 PACKAGE BODY PRP_IBC_MIGRATION_INT AS
2 /* $Header: PRPVMIBB.pls 115.2 2003/10/22 23:22:25 hekkiral noship $ */
3 
4 G_PKG_NAME          CONSTANT VARCHAR2(30):='PRP_IBC_MIGRATION_INT';
5 G_FILE_NAME         CONSTANT VARCHAR2(12):='PRPVMIBB.pls';
6 
7 --------------------------------------
8   -- Local Procedure to log messages
9 --------------------------------------
10   PROCEDURE Log_Message
11     (
12      pi_migration_code    VARCHAR2,
13      pi_module_name       VARCHAR2,
14      pi_log_level         VARCHAR2,
15      pi_message_text      VARCHAR2
16     )
17   IS
18   BEGIN
19 
20 
21     PRP_MIGRATION_PVT.Log_Message
22       (
23       p_api_version                    => 1.0,
24       p_init_msg_list                  => FND_API.G_TRUE,
25       p_commit                         => FND_API.G_FALSE,
26       p_validation_level               => FND_API.G_VALID_LEVEL_FULL,
27       p_module_name                    => pi_module_name,
28       p_log_level                      => pi_log_level,
29       p_message_text                   => pi_message_text,
30       p_migration_code                 => pi_migration_code,
31       p_created_by                     => FND_GLOBAL.user_id,
32       p_creation_date                  => sysdate,
33       p_last_updated_by                => FND_GLOBAL.user_id,
34       p_last_update_date               => sysdate,
35       p_last_update_login              => FND_GLOBAL.login_id
36       );
37 
38   END;
39 
40 /****************************************************************
41  * Procedure Name: CREATE_CONTENT                               *
42  *                                                              *
43  *                                                              *
44  ****************************************************************/
45 
46 PROCEDURE CREATE_CONTENT(
47                          p_api_version                 IN  NUMBER,
48                          p_init_msg_list               IN  VARCHAR2 := FND_API.G_FALSE,
49                          p_component_style_id          IN  NUMBER,
50                          p_base_language               IN  VARCHAR2,
51                          p_file_id                     IN  NUMBER,
52                          p_comp_style_ctntver_id       IN  NUMBER,
53                          px_content_item_id            IN  OUT NOCOPY NUMBER,
54                          px_object_version_number      IN  OUT NOCOPY NUMBER,
55                          x_citem_ver_id                OUT NOCOPY NUMBER,
56                          x_return_status               OUT NOCOPY VARCHAR2,
57                          x_msg_count                   OUT NOCOPY NUMBER,
58                          x_msg_data                    OUT NOCOPY VARCHAR2) IS
59 
60 l_content_item_id           NUMBER;
61 l_object_version_number     NUMBER;
62 l_citem_ver_id              NUMBER;
63 l_return_status             VARCHAR2(30);
64 l_msg_count                 NUMBER;
65 l_msg_data                  VARCHAR2(2000);
66 l_api_name                  CONSTANT VARCHAR2(30) := 'CREATE_CONTENT';
67 l_api_version               CONSTANT NUMBER := 1;
68 l_module_name               CONSTANT VARCHAR2(256) := 'PLSQL.PRP.PRP_IBC_MIGRATION_INT.CREATE_CONTENT';
69 l_migration_code            CONSTANT VARCHAR2(30) := 'PRP_COMP_OCM_MIGRATION';
70 
71 Begin
72 
73   x_return_status := FND_API.G_RET_STS_SUCCESS;
74 
75 -- Begin Standard Section
76 
77       SAVEPOINT svpt_create_content;
78       IF (p_init_msg_list = FND_API.g_true) THEN
79         FND_MSG_PUB.initialize;
80       END IF;
81 
82       -- Standard call to check for call compatibility.
83       IF NOT FND_API.Compatible_API_Call (
84             l_api_version
85            ,p_api_version
86            ,l_api_name
87            ,G_PKG_NAME
88       )THEN
89           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
90       END IF;
91 
92       -- Initialize API return status to SUCCESS
93       x_return_status := FND_API.G_RET_STS_SUCCESS;
94 -- End Standard Section
95 
96  IF px_content_item_id is not null THEN
97     l_content_item_id := px_content_item_id;
98  END IF;
99 
100  IF px_object_version_number is not null THEN
101     l_object_version_number := px_object_version_number;
102  END IF;
103 
104   -- Create Content Item.
105   IBC_CITEM_ADMIN_GRP.upsert_item_full(
106              p_ctype_code                => 'IBC_FILE'
107             ,p_citem_name               => p_component_style_id
108             ,p_citem_description        => null
109             ,p_dir_node_id              => 43
110             ,p_owner_resource_id        => NULL
111             ,p_owner_resource_type      => NULL
112             ,p_reference_code           => NULL
113             ,p_trans_required           => FND_API.g_true -- Translation required.
114             ,p_parent_item_id           => NULL
115             ,p_lock_flag                => FND_API.g_false
116             ,p_wd_restricted            => FND_API.g_true
117             ,p_start_date               => NULL
118             ,p_end_date                 => NULL
119             ,p_attribute_type_codes     => NULL
120             ,p_attributes               => NULL
121             ,p_attach_file_id           => p_file_id
122             ,p_component_citems         => NULL
123             ,p_component_atypes         => NULL
124             ,p_sort_order               => NULL
125             ,p_status                   => IBC_UTILITIES_PUB.G_STV_WORK_IN_PROGRESS
126             ,p_log_action               => FND_API.g_true
127             ,p_language                 => p_base_language
128             ,p_update                   => FND_API.g_true
129             ,p_commit                   => FND_API.g_false
130             ,p_api_version_number       => IBC_CITEM_ADMIN_GRP.G_API_VERSION_DEFAULT
131             ,p_init_msg_list            => FND_API.g_true
132             ,px_content_item_id         => l_content_item_id
133             ,px_object_version_number   => l_object_version_number
134             ,px_citem_ver_id            => l_citem_ver_id
135             ,x_return_status            => l_return_status
136             ,x_msg_count                => l_msg_count
137             ,x_msg_data                 => l_msg_data
138           );
139 
140    IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
141        FND_MESSAGE.Set_Name('PRP', 'PRP_MG_API_RETURN_ERR');
142        FND_MESSAGE.Set_Token('API', 'IBC_CITEM_ADMIN_GRP.UPSERT_ITEM_FULL');
143        FND_MESSAGE.Set_Token('PROC', 'PRP_IBC_MIGRATION_INT.CREATE_CONTENT');
144        Log_Message(
145              pi_migration_code    => l_migration_code
146             ,pi_module_name       => l_module_name
147             ,pi_log_level         => 'I'
148             ,pi_message_text      => FND_MESSAGE.get ||' '|| l_msg_data);
149       RAISE FND_API.G_EXC_ERROR;
150    END IF;
151 
152 
153    /* Approve Item */
154 
155    IBC_CITEM_ADMIN_GRP.APPROVE_ITEM(
156            p_citem_ver_id               => l_citem_ver_id
157           ,p_commit                     => FND_API.g_false
158           ,p_api_version_number         => IBC_CITEM_ADMIN_GRP.G_API_VERSION_DEFAULT
159           ,p_init_msg_list              => FND_API.g_true
160           ,px_object_version_number     => l_object_version_number
161           ,x_return_status              => l_return_status
162           ,x_msg_count                  => l_msg_count
163           ,x_msg_data                   => l_msg_data
164           );
165 
166 
167    IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
168        FND_MESSAGE.Set_Name('PRP', 'PRP_MG_API_RETURN_ERR');
169        FND_MESSAGE.Set_Token('API', 'IBC_CITEM_ADMIN_GRP.APPROVE_ITEM');
170        FND_MESSAGE.Set_Token('PROC', 'PRP_IBC_MIGRATION_INT.CREATE_CONTENT');
171        Log_Message(
172              pi_migration_code    => l_migration_code
173             ,pi_module_name       => l_module_name
174             ,pi_log_level         => 'I'
175             ,pi_message_text      => FND_MESSAGE.get ||' '|| l_msg_data);
176       RAISE FND_API.G_EXC_ERROR;
177    END IF;
178 
179     IF px_content_item_id is null THEN
180 
181      -- Associate Content Item with Component Style
182      Update PRP_COMPONENT_STYLES_B PCS set pcs.content_item_id = l_content_item_id, pcs.content_node_type='HIDDEN'
183      Where  pcs.component_style_id = p_component_style_id;
184 
185      -- Create Association in OCM.
186      IBC_ASSOCIATIONS_GRP.CREATE_ASSOCIATION (
187 	            p_api_version               => 1.0
188                ,p_init_msg_list             => FND_API.G_TRUE
189 	           ,p_commit                    => FND_API.G_FALSE
190 	           ,p_assoc_type_code           => 'PRP_COMPONENT_DOCUMENT'
191 	           ,p_assoc_object1             => p_component_style_id
192 	           ,p_content_item_id           => l_content_item_id
193                ,p_citem_version_id          => null
194 	           ,x_return_status             => l_return_status
195                ,x_msg_count			        => l_msg_count
196                ,x_msg_data                  => l_msg_data
197                                              );
198 
199         IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
200           FND_MESSAGE.Set_Name('PRP', 'PRP_MG_API_RETURN_ERR');
201           FND_MESSAGE.Set_Token('API', 'IBC_ASSOCIATIONS_GRP.CREATE_ASSOCIATION');
202           FND_MESSAGE.Set_Token('PROC', 'PRP_IBC_MIGRATION_INT.CREATE_CONTENT');
203           Log_Message(
204              pi_migration_code    => l_migration_code
205             ,pi_module_name       => l_module_name
206             ,pi_log_level         => 'I'
207             ,pi_message_text      => FND_MESSAGE.get ||' '|| l_msg_data);
208             RAISE FND_API.G_EXC_ERROR;
209         END IF;
210 
211    END IF;
212 
213    -- Update PRP_COMP_STYLE_CTNTVERS table with citem_version_id.
214    Update PRP_COMP_STYLE_CTNTVERS PCC set pcc.citem_version_id = l_citem_ver_id
215    Where pcc.comp_style_ctntver_id = p_comp_style_ctntver_id;
216 
217    -- Create Association in OCM for versions.
218    IBC_ASSOCIATIONS_GRP.CREATE_ASSOCIATION (
219 	            p_api_version               => 1.0
220                ,p_init_msg_list             => FND_API.G_TRUE
221 	           ,p_commit                    => FND_API.G_FALSE
222 	           ,p_assoc_type_code           => 'PRP_COMPONENT_DOCUMENT_VERSION'
223 	           ,p_assoc_object1             => p_comp_style_ctntver_id
224 	           ,p_content_item_id           => l_content_item_id
225                ,p_citem_version_id          => l_citem_ver_id
226 	           ,x_return_status             => l_return_status
227                ,x_msg_count			        => l_msg_count
228                ,x_msg_data                  => l_msg_data
229                                              );
230 
231    IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
232           FND_MESSAGE.Set_Name('PRP', 'PRP_MG_API_RETURN_ERR');
233           FND_MESSAGE.Set_Token('API', 'IBC_ASSOCIATIONS_GRP.CREATE_ASSOCIATION');
234           FND_MESSAGE.Set_Token('PROC', 'PRP_IBC_MIGRATION_INT.CREATE_CONTENT');
235           Log_Message(
236              pi_migration_code    => l_migration_code
237             ,pi_module_name       => l_module_name
238             ,pi_log_level         => 'I'
239             ,pi_message_text      => FND_MESSAGE.get ||' '|| l_msg_data);
240             RAISE FND_API.G_EXC_ERROR;
241    END IF;
242 
243    -- Assign values to out variables.
244    x_citem_ver_id := l_citem_ver_id;
245    px_object_version_number := l_object_version_number;
246 
247    IF (px_content_item_id IS NULL) THEN
248       px_content_item_id := l_content_item_id;
249    END IF;
250 
251 
252 
253 EXCEPTION
254   WHEN FND_API.G_EXC_ERROR THEN
255      Rollback TO svpt_create_content;
256      x_return_status := FND_API.G_RET_STS_ERROR;
257      FND_MSG_PUB.count_and_get(p_count => x_msg_count
258                               ,p_data  => x_msg_data);
259   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
260      Rollback TO svpt_create_content;
261      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
262      FND_MSG_PUB.count_and_get(p_count => x_msg_count
263                               ,p_data  => x_msg_data);
264   WHEN OTHERS THEN
265       Rollback TO svpt_create_content;
266       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
267      -- x_msg_data := sqlerrm;
268       FND_MSG_PUB.count_and_get(p_count => x_msg_count
269                               ,p_data  => x_msg_data);
270 END CREATE_CONTENT;
271 
272 /****************************************************************
273  * Procedure Name: UPDATE_CONTENT                               *
274  *                                                              *
275  *                                                              *
276  ****************************************************************/
277 
278 PROCEDURE UPDATE_CONTENT(
279                          p_api_version                 IN  NUMBER,
280                          p_init_msg_list               IN  VARCHAR2 := FND_API.G_FALSE,
281                          p_file_id                     IN  NUMBER,
282                          p_component_style_id          IN  NUMBER,
283                          p_comp_style_ctntver_id       IN  NUMBER,
287                          px_object_version_number      IN  OUT NOCOPY NUMBER,
284                          p_content_item_id             IN  NUMBER,
285                          p_citem_version_id            IN  NUMBER,
286                          p_language                    IN  VARCHAR2,
288                          x_return_status               OUT NOCOPY VARCHAR2,
289                          x_msg_count                   OUT NOCOPY NUMBER,
290                          x_msg_data                    OUT NOCOPY VARCHAR2) IS
291 
292 l_content_item_id           NUMBER;
293 l_object_version_number     NUMBER;
294 l_citem_ver_id              NUMBER;
295 l_return_status             VARCHAR2(30);
296 l_msg_count                 NUMBER;
297 l_msg_data                  VARCHAR2(2000);
298 l_api_name                  CONSTANT VARCHAR2(30) := 'UPDATE_CONTENT';
299 l_api_version               CONSTANT NUMBER := 1;
300 l_module_name               CONSTANT VARCHAR2(256) := 'PLSQL.PRP.PRP_IBC_MIGRATION_INT.UPDATE_CONTENT';
301 l_migration_code            CONSTANT VARCHAR2(30) := 'PRP_COMP_OCM_MIGRATION';
302 
303 Begin
304 
305   x_return_status := FND_API.G_RET_STS_SUCCESS;
306 
307    IF px_object_version_number is not null THEN
308     l_object_version_number := px_object_version_number;
309    END IF;
310 
311    IF p_content_item_id is not null THEN
312     l_content_item_id := p_content_item_id;
313    END IF;
314 
315    IF p_citem_version_id  is not null THEN
316     l_citem_ver_id  := p_citem_version_id ;
317    END IF;
318 
319 -- Begin Standard Section
320 
321       SAVEPOINT svpt_update_content;
322       IF (p_init_msg_list = FND_API.g_true) THEN
323         FND_MSG_PUB.initialize;
324       END IF;
325 
326       -- Standard call to check for call compatibility.
327       IF NOT FND_API.Compatible_API_Call (
328             l_api_version
329            ,p_api_version
330            ,l_api_name
331            ,G_PKG_NAME
332       )THEN
333           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
334       END IF;
335 
336       -- Initialize API return status to SUCCESS
337       x_return_status := FND_API.G_RET_STS_SUCCESS;
338 -- End Standard Section
339 
340 -- Update the Attachement File id for the content.
341 IBC_CITEM_ADMIN_GRP.upsert_item_full(
342              p_ctype_code                => 'IBC_FILE'
343             ,p_citem_name               => p_component_style_id
344             ,p_citem_description        => null
345             ,p_dir_node_id              => 43
346             ,p_owner_resource_id        => NULL
347             ,p_owner_resource_type      => NULL
348             ,p_reference_code           => NULL
349             ,p_trans_required           => FND_API.g_true -- Translation required.
350             ,p_parent_item_id           => NULL
351             ,p_lock_flag                => FND_API.g_false
352             ,p_wd_restricted            => FND_API.g_true
353             ,p_start_date               => NULL
354             ,p_end_date                 => NULL
355             ,p_attribute_type_codes     => NULL
356             ,p_attributes               => NULL
357             ,p_attach_file_id           => p_file_id
358             ,p_component_citems         => NULL
359             ,p_component_atypes         => NULL
360             ,p_sort_order               => NULL
361             ,p_status                   => IBC_UTILITIES_PUB.G_STV_WORK_IN_PROGRESS
362             ,p_log_action               => FND_API.g_true
363             ,p_language                 => p_language
364             ,p_update                   => FND_API.g_true
365             ,p_commit                   => FND_API.g_false
366             ,p_api_version_number       => IBC_CITEM_ADMIN_GRP.G_API_VERSION_DEFAULT
367             ,p_init_msg_list            => FND_API.g_true
368             ,px_content_item_id         => l_content_item_id
369             ,px_object_version_number   => l_object_version_number
370             ,px_citem_ver_id            => l_citem_ver_id
371             ,x_return_status            => l_return_status
372             ,x_msg_count                => l_msg_count
373             ,x_msg_data                 => l_msg_data
374           );
375 
376     IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
377         FND_MESSAGE.Set_Name('PRP', 'PRP_MG_API_RETURN_ERR');
378         FND_MESSAGE.Set_Token('API', 'IBC_ASSOCIATIONS_GRP.UPSERT_ITEM_FULL');
379         FND_MESSAGE.Set_Token('PROC', 'PRP_IBC_MIGRATION_INT.UPDATE_CONTENT');
380         Log_Message(
381              pi_migration_code    => l_migration_code
382             ,pi_module_name       => l_module_name
383             ,pi_log_level         => 'I'
384             ,pi_message_text      => FND_MESSAGE.get ||' '|| l_msg_data);
385       RAISE FND_API.G_EXC_ERROR;
386     END IF;
387 
388 
389 -- Approve Translations
390    IBC_CITEM_ADMIN_GRP.CHANGE_TRANSLATION_STATUS(
391                 p_citem_ver_id              => p_citem_version_id
392                ,p_new_status                => IBC_UTILITIES_PUB.G_STV_APPROVED
393                ,p_language                  => p_language
394                ,p_commit                    => FND_API.G_FALSE
395                ,p_api_version_number        => IBC_CITEM_ADMIN_GRP.G_API_VERSION_DEFAULT
396                ,p_init_msg_list             => FND_API.G_TRUE
397                ,px_object_version_number    => l_object_version_number
398                ,x_return_status             => l_return_status
399                ,x_msg_count                 => l_msg_count
400                ,x_msg_data                  => l_msg_data);
401 
402 
403     IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
404         FND_MESSAGE.Set_Name('PRP', 'PRP_MG_API_RETURN_ERR');
405         FND_MESSAGE.Set_Token('API', 'IBC_CITEM_ADMIN_GRP.CHANGE_TRANSLATION_STATUS');
409             ,pi_module_name       => l_module_name
406         FND_MESSAGE.Set_Token('PROC','PRP_IBC_MIGRATION_INT.UPDATE_CONTENT');
407         Log_Message(
408              pi_migration_code    => l_migration_code
410             ,pi_log_level         => 'I'
411             ,pi_message_text      => FND_MESSAGE.get ||' '|| l_msg_data);
412       RAISE FND_API.G_EXC_ERROR;
413     END IF;
414 
415     -- Update PRP_COMP_STYLE_CTNTVERS table with citem_version_id.
416    Update PRP_COMP_STYLE_CTNTVERS PCC set pcc.citem_version_id = l_citem_ver_id
417    Where pcc.comp_style_ctntver_id = p_comp_style_ctntver_id;
418 
419    -- Create Association in OCM for versions.
420    IBC_ASSOCIATIONS_GRP.CREATE_ASSOCIATION (
421 	            p_api_version               => 1.0
422                ,p_init_msg_list             => FND_API.G_TRUE
423 	           ,p_commit                    => FND_API.G_FALSE
424 	           ,p_assoc_type_code           => 'PRP_COMPONENT_DOCUMENT_VERSION'
425 	           ,p_assoc_object1             => p_comp_style_ctntver_id
426 	           ,p_content_item_id           => l_content_item_id
427                ,p_citem_version_id          => l_citem_ver_id
428 	           ,x_return_status             => l_return_status
429                ,x_msg_count			        => l_msg_count
430                ,x_msg_data                  => l_msg_data
431                                              );
432 
433    IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
434           FND_MESSAGE.Set_Name('PRP', 'PRP_MG_API_RETURN_ERR');
435           FND_MESSAGE.Set_Token('API', 'IBC_ASSOCIATIONS_GRP.CREATE_ASSOCIATION');
436           FND_MESSAGE.Set_Token('PROC', 'PRP_IBC_MIGRATION_INT.CREATE_CONTENT');
437           Log_Message(
438              pi_migration_code    => l_migration_code
439             ,pi_module_name       => l_module_name
440             ,pi_log_level         => 'I'
441             ,pi_message_text      => FND_MESSAGE.get ||' '|| l_msg_data);
442             RAISE FND_API.G_EXC_ERROR;
443    END IF;
444 
445    px_object_version_number := l_object_version_number;
446 
447 
448 EXCEPTION
449   WHEN FND_API.G_EXC_ERROR THEN
450      Rollback TO svpt_update_content;
451      x_return_status := FND_API.G_RET_STS_ERROR;
452      FND_MSG_PUB.count_and_get(p_count => x_msg_count
453                               ,p_data  => x_msg_count);
454   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
455      Rollback TO svpt_update_content;
456      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
457      FND_MSG_PUB.count_and_get(p_count => x_msg_count
458                               ,p_data  => x_msg_count);
459   WHEN OTHERS THEN
460       Rollback TO svpt_update_content;
461       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
462      -- x_msg_data := sqlerrm;
463       FND_MSG_PUB.count_and_get(p_count => x_msg_count
464                               ,p_data  => x_msg_count);
465 END UPDATE_CONTENT;
466 
467 /****************************************************************
468  * Procedure Name: MIGRATE_PROPOSAL_DOC                         *
469  *                                                              *
470  *                                                              *
471  ****************************************************************/
472 
473 PROCEDURE MIGRATE_PROPOSAL_DOC(
474                          p_api_version                 IN  NUMBER,
475                          p_init_msg_list               IN  VARCHAR2 := FND_API.G_FALSE,
476                          p_proposal_id                 IN  NUMBER,
477                          p_proposal_ctntver_id         IN  NUMBER,
478                          p_base_language               IN  VARCHAR2,
479                          p_file_id                     IN  NUMBER,
480                          px_content_item_id            IN  OUT NOCOPY NUMBER,
481                          px_object_version_number      IN  OUT NOCOPY NUMBER,
482                          x_citem_ver_id                OUT NOCOPY NUMBER,
483                          x_return_status               OUT NOCOPY VARCHAR2,
484                          x_msg_count                   OUT NOCOPY NUMBER,
485                          x_msg_data                    OUT NOCOPY VARCHAR2) IS
486 
487 l_content_item_id           NUMBER;
488 l_object_version_number     NUMBER;
489 l_citem_ver_id              NUMBER;
490 l_return_status             VARCHAR2(30);
491 l_msg_count                 NUMBER;
492 l_msg_data                  VARCHAR2(2000);
493 l_api_name                  CONSTANT VARCHAR2(30)  := 'MIGRATE_PROPOSAL_DOC';
494 l_api_version               CONSTANT NUMBER := 1;
495 l_module_name               CONSTANT VARCHAR2(256) := 'PLSQL.PRP.PRP_IBC_MIGRATION_INT.MIGRATE_PROPOSAL_DOC';
496 l_migration_code            CONSTANT VARCHAR2(30)  := 'PRP_PROP_OCM_MIGRATION';
497 
498 Begin
499 
500   x_return_status := FND_API.G_RET_STS_SUCCESS;
501 
502 -- Begin Standard Section
503 
504       SAVEPOINT svpt_migrate_proposal_doc;
505       IF (p_init_msg_list = FND_API.g_true) THEN
506         FND_MSG_PUB.initialize;
507       END IF;
508 
509       -- Standard call to check for call compatibility.
510       IF NOT FND_API.Compatible_API_Call (
511             l_api_version
512            ,p_api_version
513            ,l_api_name
514            ,G_PKG_NAME
515       )THEN
516           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
517       END IF;
518 
519       -- Initialize API return status to SUCCESS
520       x_return_status := FND_API.G_RET_STS_SUCCESS;
521 -- End Standard Section
522 
523  IF px_content_item_id is not null THEN
524     l_content_item_id := px_content_item_id;
525  END IF;
526 
527  IF px_object_version_number is not null THEN
528     l_object_version_number := px_object_version_number;
529  END IF;
530 
531   -- Create Content Item.
535             ,p_citem_description        => null
532   IBC_CITEM_ADMIN_GRP.upsert_item_full(
533              p_ctype_code                => 'IBC_FILE'
534             ,p_citem_name               => p_proposal_id
536             ,p_dir_node_id              => 41
537             ,p_owner_resource_id        => NULL
538             ,p_owner_resource_type      => NULL
539             ,p_reference_code           => NULL
540             ,p_trans_required           => FND_API.g_false -- Translation not required.
541             ,p_parent_item_id           => NULL
542             ,p_lock_flag                => FND_API.g_false
543             ,p_wd_restricted            => FND_API.g_true
544             ,p_start_date               => NULL
545             ,p_end_date                 => NULL
546             ,p_attribute_type_codes     => NULL
547             ,p_attributes               => NULL
548             ,p_attach_file_id           => p_file_id
549             ,p_component_citems         => NULL
550             ,p_component_atypes         => NULL
551             ,p_sort_order               => NULL
552             ,p_status                   => IBC_UTILITIES_PUB.G_STV_WORK_IN_PROGRESS
553             ,p_log_action               => FND_API.g_true
554             ,p_language                 => p_base_language
555             ,p_update                   => FND_API.g_true
556             ,p_commit                   => FND_API.g_false
557             ,p_api_version_number       => IBC_CITEM_ADMIN_GRP.G_API_VERSION_DEFAULT
558             ,p_init_msg_list            => FND_API.g_true
559             ,px_content_item_id         => l_content_item_id
560             ,px_object_version_number   => l_object_version_number
561             ,px_citem_ver_id            => l_citem_ver_id
562             ,x_return_status            => l_return_status
563             ,x_msg_count                => l_msg_count
564             ,x_msg_data                 => l_msg_data
565           );
566 
567    IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
568         FND_MESSAGE.Set_Name('PRP', 'PRP_MG_API_RETURN_ERR');
569         FND_MESSAGE.Set_Token('API', 'IBC_CITEM_ADMIN_GRP.UPSERT_ITEM_FULL');
570         FND_MESSAGE.Set_Token('PROC','PRP_IBC_MIGRATION_INT.MIGRATE_PROPOSAL_DOC');
571         Log_Message(
572              pi_migration_code    => l_migration_code
573             ,pi_module_name       => l_module_name
574             ,pi_log_level         => 'I'
575             ,pi_message_text      => FND_MESSAGE.get ||' '|| l_msg_data);
576       RAISE FND_API.G_EXC_ERROR;
577    END IF;
578 
579 
580    /* Approve Item */
581 
582    IBC_CITEM_ADMIN_GRP.APPROVE_ITEM(
583            p_citem_ver_id               => l_citem_ver_id
584           ,p_commit                     => FND_API.g_false
585           ,p_api_version_number         => IBC_CITEM_ADMIN_GRP.G_API_VERSION_DEFAULT
586           ,p_init_msg_list              => FND_API.g_true
587           ,px_object_version_number     => l_object_version_number
588           ,x_return_status              => l_return_status
589           ,x_msg_count                  => l_msg_count
590           ,x_msg_data                   => l_msg_data
591           );
592 
593 
594    IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
595        FND_MESSAGE.Set_Name('PRP', 'PRP_MG_API_RETURN_ERR');
596         FND_MESSAGE.Set_Token('API', 'IBC_CITEM_ADMIN_GRP.APPROVE_ITEM');
597         FND_MESSAGE.Set_Token('PROC','PRP_IBC_MIGRATION_INT.MIGRATE_PROPOSAL_DOC');
598         Log_Message(
599              pi_migration_code    => l_migration_code
600             ,pi_module_name       => l_module_name
601             ,pi_log_level         => 'I'
602             ,pi_message_text      => FND_MESSAGE.get || l_msg_data);
603       RAISE FND_API.G_EXC_ERROR;
604    END IF;
605 
606     IF px_content_item_id is null THEN
607 
608      -- Associate Content Item with Proposal
609      Update PRP_PROPOSALS PP set pp.content_item_id = l_content_item_id
610      Where  pp.proposal_id = p_proposal_id;
611 
612      -- Create Association in OCM.
613      IBC_ASSOCIATIONS_GRP.CREATE_ASSOCIATION (
614 	            p_api_version               => 1.0
615                ,p_init_msg_list             => FND_API.G_TRUE
616 	           ,p_commit                    => FND_API.G_FALSE
617 	           ,p_assoc_type_code           => 'PRP_GENERATED_PROPOSAL'
618 	           ,p_assoc_object1             => p_proposal_id
619 	           ,p_content_item_id           => l_content_item_id
620                ,p_citem_version_id          => null
621 	           ,x_return_status             => l_return_status
622                ,x_msg_count			        => l_msg_count
623                ,x_msg_data                  => l_msg_data
624                                              );
625 
626         IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
627           FND_MESSAGE.Set_Name('PRP', 'PRP_MG_API_RETURN_ERR');
628           FND_MESSAGE.Set_Token('API', 'IBC_ASSOCIATIONS_GRP.CREATE_ASSOCIATION');
629           FND_MESSAGE.Set_Token('PROC','PRP_IBC_MIGRATION_INT.MIGRATE_PROPOSAL_DOC');
630           Log_Message(
631              pi_migration_code    => l_migration_code
632             ,pi_module_name       => l_module_name
633             ,pi_log_level         => 'I'
634             ,pi_message_text      => FND_MESSAGE.get ||' '|| l_msg_data);
635             RAISE FND_API.G_EXC_ERROR;
636         END IF;
637 
638    END IF;
639 
640    -- Update PRP_PROP_STYLE_CTNTVERS table with citem_version_id.
641    Update PRP_PROPOSAL_CTNTVERS PPS set pps.citem_version_id = l_citem_ver_id
642    Where pps.proposal_ctntver_id = p_proposal_ctntver_id;
643 
644    -- Create Association in OCM for the versions.
645    IBC_ASSOCIATIONS_GRP.CREATE_ASSOCIATION (
646 	            p_api_version               => 1.0
647                ,p_init_msg_list             => FND_API.G_TRUE
648 	           ,p_commit                    => FND_API.G_FALSE
649 	           ,p_assoc_type_code           => 'PRP_GENERATED_DOCUMENT_VERSION'
650 	           ,p_assoc_object1             => p_proposal_ctntver_id
651 	           ,p_content_item_id           => l_content_item_id
652                ,p_citem_version_id          => l_citem_ver_id
653 	           ,x_return_status             => l_return_status
654                ,x_msg_count			        => l_msg_count
655                ,x_msg_data                  => l_msg_data
656                                              );
657 
658    IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
659       FND_MESSAGE.Set_Name('PRP', 'PRP_MG_API_RETURN_ERR');
660       FND_MESSAGE.Set_Token('API', 'IBC_ASSOCIATIONS_GRP.CREATE_ASSOCIATION');
661       FND_MESSAGE.Set_Token('PROC','PRP_IBC_MIGRATION_INT.MIGRATE_PROPOSAL_DOC');
662       Log_Message(
663              pi_migration_code    => l_migration_code
664             ,pi_module_name       => l_module_name
665             ,pi_log_level         => 'I'
666             ,pi_message_text      => FND_MESSAGE.get ||' '|| l_msg_data);
667       RAISE FND_API.G_EXC_ERROR;
668    END IF;
669 
670 
671    -- Assign values to out variables.
672    x_citem_ver_id := l_citem_ver_id;
673    px_object_version_number := l_object_version_number;
674 
675    IF (px_content_item_id IS NULL) THEN
676       px_content_item_id := l_content_item_id;
677    END IF;
678 
679 
680 
681 EXCEPTION
682   WHEN FND_API.G_EXC_ERROR THEN
683      Rollback TO svpt_migrate_proposal_doc;
684      x_return_status := FND_API.G_RET_STS_ERROR;
685      FND_MSG_PUB.count_and_get(p_count => x_msg_count
686                               ,p_data  => x_msg_data);
687   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
688      Rollback TO svpt_migrate_proposal_doc;
689      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
690      FND_MSG_PUB.count_and_get(p_count => x_msg_count
691                               ,p_data  => x_msg_data);
692   WHEN OTHERS THEN
693       Rollback TO svpt_migrate_proposal_doc;
694       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
695       --x_msg_data := sqlerrm;
696       FND_MSG_PUB.count_and_get(p_count => x_msg_count
697                               ,p_data  => x_msg_data);
698 END MIGRATE_PROPOSAL_DOC;
699 END PRP_IBC_MIGRATION_INT;