DBA Data[Home] [Help]

PACKAGE BODY: APPS.OZF_PROCESS_SETUP_PVT

Source


1 PACKAGE BODY OZF_PROCESS_SETUP_PVT as
2 /* $Header: ozfvpseb.pls 120.5 2008/07/04 04:23:27 kdass noship $ */
3 -- Start of Comments
4 -- Package name     : ozf_process_setup_pvt
5 -- Purpose          :
6 -- History          : 10-NOV-2007  gdeepika   Created
7 -- NOTE             :
8 -- End of Comments
9 
10 G_PKG_NAME CONSTANT VARCHAR2(30):= 'ozf_process_setup_pvt';
11 G_FILE_NAME CONSTANT VARCHAR2(12) := 'ozfvpseb.pls';
12 G_PARTY_ID     NUMBER;
13 G_ACCOUNT_ID   NUMBER;
14 
15 PROCEDURE create_process_setup
16 (
17    p_api_version_number         IN          NUMBER,
18    p_init_msg_list              IN          VARCHAR2     := FND_API.G_FALSE,
19    P_Commit                     IN          VARCHAR2     := FND_API.G_FALSE,
20    p_validation_level           IN          NUMBER       := FND_API.G_VALID_LEVEL_FULL,
21    x_return_status              OUT NOCOPY  VARCHAR2,
22    x_msg_count                  OUT NOCOPY  NUMBER,
23    x_msg_data                   OUT NOCOPY  VARCHAR2,
24    p_process_setup_tbl        IN          process_setup_tbl_type,
25    x_process_setup_id_tbl     OUT NOCOPY  JTF_NUMBER_TABLE
26 )
27 IS
28    l_api_name                  CONSTANT VARCHAR2(30) := 'create_process_setup';
29    l_api_version_number        CONSTANT NUMBER   := 1.0;
30    l_return_status_full        VARCHAR2(1);
31    l_object_version_number     NUMBER := 1;
32    l_org_id                    NUMBER;
33    l_process_setup_id        NUMBER;
34    l_process_setup_rec       process_setup_rec_type;
35    TYPE process_code_table_type IS TABLE OF VARCHAR2(30);
36    process_code_tbl process_code_table_type;
37     flag boolean :=false;
38 
39 
40 BEGIN
41       -- Standard Start of API savepoint
42       SAVEPOINT create_process_setup_pvt;
43 
44       -- Standard call to check for call compatibility.
45       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
46                                            p_api_version_number,
47                                            l_api_name,
48                                            G_PKG_NAME)
49       THEN
50           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
51       END IF;
52 
53       -- Initialize message list if p_init_msg_list is set to TRUE.
54       IF FND_API.to_Boolean( p_init_msg_list )
55       THEN
56           FND_MSG_PUB.initialize;
57       END IF;
58 
59 
60       -- ******************************************************************
61       -- Validate Environment
62       -- ******************************************************************
63       IF FND_GLOBAL.User_Id IS NULL
64       THEN
65           IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
66           THEN
67               FND_MESSAGE.Set_Name('OZF', 'OZF_USER_PROFILE_MISSING');
68               FND_MSG_PUB.ADD;
69           END IF;
70           RAISE FND_API.G_EXC_ERROR;
71       END IF;
72 
73       -- Debug Message
74         IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low) THEN
75            OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
76         END IF;
77 
78       -- Initialize API return status to SUCCESS
79       x_return_status := FND_API.G_RET_STS_SUCCESS;
80 
81         IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low) THEN
82            OZF_UTILITY_PVT.debug_message( 'No of records to be created'||p_process_setup_tbl.count);
83         END IF;
84 
85       IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL) THEN
86           -- Debug message
87           OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name);
88           -- Invoke validation procedures
89           Validate_Process_Setup(
90             p_api_version_number     => 1.0,
91             p_init_msg_list              => FND_API.G_FALSE,
92             p_validation_level       => p_validation_level,
93             p_validation_mode        => JTF_PLSQL_API.G_CREATE,
94                 p_process_setup_tbl      => p_process_setup_tbl,
95             x_return_status          => x_return_status,
96             x_msg_count              => x_msg_count,
97             x_msg_data               => x_msg_data);
98       END IF;
99 
100       IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
101          RAISE FND_API.G_EXC_ERROR;
102       END IF;
103 
104       -- Debug Message
105         IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low) THEN
106            OZF_UTILITY_PVT.debug_message( 'Private API: Calling create table handler');
107         END IF;
108 
109       l_process_setup_id     := NULL;
110       l_object_version_number  := 1;
111 
112       x_process_setup_id_tbl := JTF_NUMBER_TABLE();
113 
114         IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low) THEN
115           OZF_UTILITY_PVT.debug_message( 'No of rows to be created '|| p_process_setup_tbl.count);
116         END IF;
117 
118 
119 
120 
121       FOR i IN 1 .. p_process_setup_tbl.count
122       LOOP
123 
124         l_process_setup_rec := p_process_setup_tbl(i);
125 
126         IF (l_process_setup_rec.org_id IS NULL)      THEN
127              l_org_id := MO_GLOBAL.GET_CURRENT_ORG_ID();  -- R12 Enhancements
128         ELSE
129              l_org_id := l_process_setup_rec.org_id;
130         END IF;
131         SELECT ozf_process_setup_all_s.nextval INTO l_process_setup_id FROM DUAL;
132 
133         IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low) THEN
134             OZF_UTILITY_PVT.debug_message( 'l_org_id ' || l_org_id);
135             OZF_UTILITY_PVT.debug_message( 'Process Setup ID '|| l_process_setup_id);
136         END IF;
137 
138         BEGIN
139 
140 
141         OZF_PROCESS_SETUP_PKG.Insert_Row(
142           px_process_setup_id       =>    l_process_setup_id,
143           px_object_version_number  =>    l_object_version_number,
144           p_last_update_date        =>    SYSDATE,
145           p_last_updated_by         =>    FND_GLOBAL.USER_ID,
146           p_creation_date           =>    SYSDATE,
147           p_created_by              =>    FND_GLOBAL.USER_ID,
148           p_last_update_login       =>    FND_GLOBAL.CONC_LOGIN_ID,
149           px_org_id                 =>    l_org_id,
150           p_supp_trade_profile_id   =>    l_process_setup_rec.supp_trade_profile_id,
151           p_process_code            =>    l_process_setup_rec.process_code,
152           p_enabled_flag            =>    l_process_setup_rec.enabled_flag,
153           p_automatic_flag          =>    l_process_setup_rec.automatic_flag,
154           p_attribute_category      =>    l_process_setup_rec.attribute_category,
155           p_attribute1              =>    l_process_setup_rec.attribute1,
156           p_attribute2              =>    l_process_setup_rec.attribute2,
157           p_attribute3              =>    l_process_setup_rec.attribute3,
158           p_attribute4              =>    l_process_setup_rec.attribute4,
159           p_attribute5              =>    l_process_setup_rec.attribute5,
160           p_attribute6              =>    l_process_setup_rec.attribute6,
161           p_attribute7              =>    l_process_setup_rec.attribute7,
162           p_attribute8              =>    l_process_setup_rec.attribute8,
163           p_attribute9              =>    l_process_setup_rec.attribute9,
164           p_attribute10             =>    l_process_setup_rec.attribute10,
165           p_attribute11             =>    l_process_setup_rec.attribute11,
166           p_attribute12             =>    l_process_setup_rec.attribute12,
167           p_attribute13             =>    l_process_setup_rec.attribute13,
168           p_attribute14             =>    l_process_setup_rec.attribute14,
169           p_attribute15             =>    l_process_setup_rec.attribute15);
170 
171         EXCEPTION
172           WHEN OTHERS THEN
173               OZF_UTILITY_PVT.debug_message (SQLERRM ||'  Error in creating process setup');
174               RAISE FND_API.G_EXC_ERROR;
175         END;
176         IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low) THEN
177            OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || ' after insert call - code conversion id' || l_process_setup_id);
178            OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || ' after insert call - obj version no ' || l_process_setup_rec.Object_Version_Number);
179         END IF;
180 
181       x_process_setup_id_tbl.extend;
182       x_process_setup_id_tbl(x_process_setup_id_tbl.count) :=  l_process_setup_id;
183 
184    END LOOP;
185 
186 
187 
188 -- new code for inserting the remaining process code records during creation.
189 
190  --CURSOR csr_process_setup(pc_table process_code_table_type)
191  -- IS
192     SELECT lookup_code
193     BULK COLLECT INTO process_code_tbl
194     FROM dpp_lookups fl
195     WHERE fl.lookup_type='DPP_EXECUTION_PROCESSES'
196     AND nvl(fl.start_date_active,sysdate) <= sysdate
197     AND nvl(fl.end_date_active,sysdate) >= sysdate
198     AND fl.enabled_flag= 'Y'
199     AND fl.tag IS NOT NULL;
200 
201      IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low) THEN
202         OZF_UTILITY_PVT.debug_message('code table count'||process_code_tbl.count);
203         end if;
204       l_process_setup_rec := p_process_setup_tbl(1);
205       IF (l_process_setup_rec.org_id IS NULL)      THEN
206             l_org_id := MO_GLOBAL.GET_CURRENT_ORG_ID();  -- R12 Enhancements
207       ELSE
208           l_org_id := l_process_setup_rec.org_id;
209       END IF;
210 
211       FOR i IN  process_code_tbl.first..process_code_tbl.last
212       LOOP
213         flag := true;
214         FOR j IN  p_process_setup_tbl.first..p_process_setup_tbl.last
215         LOOP
216           IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low) THEN
217              OZF_UTILITY_PVT.debug_message('i is '||i);
218              OZF_UTILITY_PVT.debug_message('J'||j);
219              OZF_UTILITY_PVT.debug_message(' for p_process_setup_tbl(j).process_code'||p_process_setup_tbl(j).process_code||'--process_code_tbl(i)'||process_code_tbl(i));
220           end if;
221         if (p_process_setup_tbl(j).process_code = process_code_tbl(i))
222         then
223          flag := false;
224          exit;
225         end if;
226         if(flag = false) then
227         exit;
228         end if;
229         END LOOP;
230 
231      IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low) THEN
232         OZF_UTILITY_PVT.debug_message('for p_process_setup_tbl(j).process_code'||'--'||process_code_tbl(i));
233         end if;
234         IF (flag = true) THEN
235 
236            SELECT ozf_process_setup_all_s.nextval INTO l_process_setup_id FROM DUAL;
237 
238            IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low) THEN
239               OZF_UTILITY_PVT.debug_message('l_process_setup_id and i '||i||l_process_setup_id);
240               OZF_UTILITY_PVT.debug_message('org_id and i '||i||l_org_id);
241               OZF_UTILITY_PVT.debug_message('l_object_version_number and i '||i||l_object_version_number);
242               OZF_UTILITY_PVT.debug_message('l_process_setup_rec.supp_trade_profile_id and i '||i||l_process_setup_rec.supp_trade_profile_id);
243               OZF_UTILITY_PVT.debug_message('process_code_tbl(i) and i '||i||process_code_tbl(i));
244 
245               OZF_UTILITY_PVT.debug_message( 'l_org_id ' || l_org_id);
246               OZF_UTILITY_PVT.debug_message( 'Process Setup ID '|| l_process_setup_id);
247 
248            END IF;
249 
250        BEGIN
251         OZF_PROCESS_SETUP_PKG.Insert_Row(
252           px_process_setup_id       =>    l_process_setup_id,
253           px_object_version_number  =>    l_object_version_number,
254           p_last_update_date        =>    SYSDATE,
255           p_last_updated_by         =>    FND_GLOBAL.USER_ID,
256           p_creation_date           =>    SYSDATE,
257           p_created_by              =>    FND_GLOBAL.USER_ID,
258           p_last_update_login       =>    FND_GLOBAL.CONC_LOGIN_ID,
259           px_org_id                 =>    l_org_id,
260           p_supp_trade_profile_id   =>    l_process_setup_rec.supp_trade_profile_id,
261           p_process_code            =>    process_code_tbl(i),
262           p_enabled_flag            =>    'N',
263           p_automatic_flag          =>    'N',
264           p_attribute_category      =>    NULL,
265           p_attribute1              =>    NULL,
266           p_attribute2              =>    NULL,
267           p_attribute3              =>    NULL,
268           p_attribute4              =>    NULL,
269           p_attribute5              =>    NULL,
270           p_attribute6              =>    NULL,
271           p_attribute7              =>    NULL,
272           p_attribute8              =>    NULL,
273           p_attribute9              =>    NULL,
274           p_attribute10             =>    NULL,
275           p_attribute11             =>    NULL,
276           p_attribute12             =>    NULL,
277           p_attribute13             =>    NULL,
278           p_attribute14             =>    NULL,
279           p_attribute15             =>    NULL);
280 
281         EXCEPTION
282           WHEN OTHERS THEN
283               OZF_UTILITY_PVT.debug_message (SQLERRM ||'  Error in creating process setup');
284               RAISE FND_API.G_EXC_ERROR;
285         END;
286         else
287          OZF_UTILITY_PVT.debug_message('flag was false');
288         end if ;
289      END LOOP;
290      -- RAISE FND_API.G_EXC_ERROR;
291    -- Standard check for p_commit
292    IF FND_API.to_Boolean( p_commit )
293    THEN
294       COMMIT WORK;
295    END IF;
296 
297    -- Debug Message
298    IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low) THEN
299       OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
300    END IF;
301 
302    -- Standard call to get message count and if count is 1, get message info.
303    FND_MSG_PUB.Count_And_Get
304    (p_count          =>   x_msg_count,
305     p_data           =>   x_msg_data
306    );
307 
308 
309 
310 EXCEPTION
311   WHEN OZF_UTILITY_PVT.resource_locked THEN
312      x_return_status := FND_API.g_ret_sts_error;
313      IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
314             FND_MESSAGE.set_name('OZF', 'OZF_API_RESOURCES_LOCKED');
315             FND_MSG_PUB.add;
316      END IF;
317   WHEN FND_API.G_EXC_ERROR THEN
318      ROLLBACK TO create_process_setup_pvt;
319      x_return_status := FND_API.G_RET_STS_ERROR;
320      -- Standard call to get message count and if count=1, get the message
321      FND_MSG_PUB.Count_And_Get (
322             p_encoded => FND_API.G_FALSE,
323             p_count   => x_msg_count,
324             p_data    => x_msg_data
325      );
329      -- Standard call to get message count and if count=1, get the message
326   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
327      ROLLBACK TO create_process_setup_pvt;
328      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
330      FND_MSG_PUB.Count_And_Get (
331             p_encoded => FND_API.G_FALSE,
332             p_count => x_msg_count,
333             p_data  => x_msg_data
334      );
335   WHEN OTHERS THEN
336      ROLLBACK TO create_process_setup_pvt;
337      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
338      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
339      THEN
340         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
341      END IF;
342      -- Standard call to get message count and if count=1, get the message
343      FND_MSG_PUB.Count_And_Get (
344             p_encoded => FND_API.G_FALSE,
345             p_count => x_msg_count,
346             p_data  => x_msg_data
347      );
348 
349 END create_process_setup ;
350 
351 
352 PROCEDURE Update_process_setup
353 (
354     p_api_version_number         IN  NUMBER,
355     p_init_msg_list              IN  VARCHAR2     := FND_API.G_FALSE,
356     p_commit                     IN  VARCHAR2     := FND_API.G_FALSE,
357     p_validation_level           IN  NUMBER       := FND_API.G_VALID_LEVEL_FULL,
358     x_return_status              OUT NOCOPY  VARCHAR2,
359     x_msg_count                  OUT NOCOPY  NUMBER,
360     x_msg_data                   OUT NOCOPY  VARCHAR2,
361     p_process_setup_tbl        IN          process_setup_tbl_type  ,
362     x_object_version_number      OUT NOCOPY  JTF_NUMBER_TABLE
363     )
364 IS
365   l_api_name                CONSTANT VARCHAR2(30) := 'Update_process_setup';
366   l_api_version_number      CONSTANT NUMBER   := 1.0;
367   l_object_version_number   NUMBER;
368 
369   l_process_setup_id  NUMBER;
370 
371   CURSOR csr_process_setup(cv_process_setup_id NUMBER)
372   IS
373   SELECT  process_setup_id,
374          object_version_number,
375          last_update_date,
376          last_updated_by,
377          creation_date,
378          created_by,
379          last_update_login,
380          org_id,
381          supp_trade_profile_id,
382              process_code,
383          enabled_flag,
384          automatic_flag,
385          attribute_category,
386          attribute1,
387          attribute2,
388          attribute3,
389          attribute4,
390          attribute5,
391          attribute6,
392          attribute7,
393          attribute8,
394          attribute9,
395          attribute10,
396          attribute11,
397          attribute12,
398          attribute13,
399          attribute14,
400          attribute15,
401          security_group_id
402  FROM    ozf_process_setup_all
403  WHERE   process_setup_id = cv_process_setup_id;
404 
405  CURSOR get_org
406  IS
407  SELECT org_id FROM ozf_sys_parameters;
408 
409 l_process_setup_rec   process_setup_rec_type;
410 l_process_setup_tbl   process_setup_tbl_type;
411 l_org_id                NUMBER;
412 p_process_setup_rec   process_setup_rec_type;
413 
414 
415 BEGIN
416       -- Standard Start of API savepoint
417       SAVEPOINT update_process_setup_pvt;
418 
419       -- Standard call to check for call compatibility.
420       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
421                                            p_api_version_number,
422                                            l_api_name,
423                                            G_PKG_NAME)
424       THEN
425           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
426       END IF;
427 
428       -- Initialize message list if p_init_msg_list is set to TRUE.
429       IF FND_API.to_Boolean( p_init_msg_list )
430       THEN
431           FND_MSG_PUB.initialize;
432       END IF;
433 
434       -- ******************************************************************
435       -- Validate Environment
436       -- ******************************************************************
437       IF FND_GLOBAL.User_Id IS NULL
438       THEN
439           IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
440           THEN
441               FND_MESSAGE.Set_Name('OZF', 'OZF_USER_PROFILE_MISSING');
442               FND_MSG_PUB.ADD;
443           END IF;
444           RAISE FND_API.G_EXC_ERROR;
445       END IF;
446 
447       -- Debug Message
448        IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low) THEN
449           OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
450        END IF;
451 
452       -- Initialize API return status to SUCCESS
453       x_return_status         := FND_API.G_RET_STS_SUCCESS;
454       x_object_version_number := JTF_NUMBER_TABLE();
455 
456 
457       FOR i in 1 .. p_process_setup_tbl.count
458       LOOP
459         p_process_setup_rec := p_process_setup_tbl(i);
460         l_process_setup_id  := p_process_setup_rec.process_setup_id;
461 
462         IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low) THEN
463            OZF_UTILITY_PVT.debug_message( 'In Update :Process Setup ID' || l_process_setup_id);
464         END IF;
465 
469         INTO   l_process_setup_rec.process_setup_id
466       --  Check for the existance of the record
467         OPEN csr_process_setup(l_process_setup_id);
468         FETCH csr_process_setup
470               ,l_process_setup_rec.object_version_number
471               ,l_process_setup_rec.last_update_date
472               ,l_process_setup_rec.last_updated_by
473               ,l_process_setup_rec.creation_date
474               ,l_process_setup_rec.created_by
475               ,l_process_setup_rec.last_update_login
476               ,l_process_setup_rec.org_id
477               ,l_process_setup_rec.supp_trade_profile_id
478                   ,l_process_setup_rec.process_code
479               ,l_process_setup_rec.enabled_flag
480               ,l_process_setup_rec.automatic_flag
481               ,l_process_setup_rec.attribute_category
482               ,l_process_setup_rec.attribute1
483               ,l_process_setup_rec.attribute2
484               ,l_process_setup_rec.attribute3
485               ,l_process_setup_rec.attribute4
486               ,l_process_setup_rec.attribute5
487               ,l_process_setup_rec.attribute6
488               ,l_process_setup_rec.attribute7
489               ,l_process_setup_rec.attribute8
490               ,l_process_setup_rec.attribute9
491               ,l_process_setup_rec.attribute10
492               ,l_process_setup_rec.attribute11
493               ,l_process_setup_rec.attribute12
494               ,l_process_setup_rec.attribute13
495               ,l_process_setup_rec.attribute14
496               ,l_process_setup_rec.attribute15
497               ,l_process_setup_rec.security_group_id;
498 
499 
500          IF ( csr_process_setup%NOTFOUND) THEN
501             IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low) THEN
502               OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'nodata for upd');
503             END IF;
504 
505            IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
506               FND_MESSAGE.set_name('OZF', 'OZF_API_RECORD_NOT_FOUND');
507               FND_MSG_PUB.add;
508            END IF;
509            RAISE FND_API.G_EXC_ERROR;
510          END IF;
511         CLOSE csr_process_setup;
512 
513 
514         IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low) THEN
515           OZF_UTILITY_PVT.debug_message( 'Pre Object Version Number ' || l_process_setup_rec.object_version_number);
516           OZF_UTILITY_PVT.debug_message( 'Post Object Version Number' || P_process_setup_rec.object_version_number);
517         END IF;
518 
519       --- Check the Version Number for Locking
520         IF l_process_setup_rec.object_version_number <> P_process_setup_rec.Object_Version_number
521         THEN
522             IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low) THEN
523                OZF_UTILITY_PVT.debug_message( 'dbver' || l_process_setup_rec.object_version_number);
524                OZF_UTILITY_PVT.debug_message( 'reqver' || P_process_setup_rec.object_version_number);
525             END IF;
526 
527           IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
528           THEN
529              FND_MESSAGE.Set_Name('OZF', 'OZF_API_RESOURCE_LOCKED');
530              FND_MSG_PUB.ADD;
531           END IF;
532           RAISE FND_API.G_EXC_ERROR;
533         END IF;
534 
535 
536         IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL) THEN
537         -- Debug message
538           IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low) THEN
539              OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name);
540           END IF;
541         -- Invoke validation procedures
542             Validate_process_setup(
543             p_api_version_number     => 1.0,
544             p_init_msg_list          => FND_API.G_FALSE,
545             p_validation_level       => p_validation_level,
546             p_validation_mode        => JTF_PLSQL_API.G_UPDATE,
547             p_process_setup_tbl      => p_process_setup_tbl,
548             x_return_status          => x_return_status,
549             x_msg_count              => x_msg_count,
550             x_msg_data               => x_msg_data);
551         END IF;
552 
553         IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
554            RAISE FND_API.G_EXC_ERROR;
555         END IF;
556 
557         IF (l_process_setup_rec.org_id IS NULL) THEN
558             l_org_id := MO_GLOBAL.GET_CURRENT_ORG_ID();  -- R12 Enhancements
559         ELSE
560            l_org_id := l_process_setup_rec.org_id;
561         END IF;
562 
563 
564      -- Call Update Table Handler
565      -- Debug Message
566         IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low) THEN
567            OZF_UTILITY_PVT.debug_message( 'Private API: Calling Update table handler');
568         END IF;
569         BEGIN
570            OZF_PROCESS_SETUP_PKG.Update_Row(
571            p_process_setup_id      =>    l_process_setup_id,
572            p_object_version_number  =>     p_process_setup_rec.object_version_number,
573            p_last_update_date       =>     SYSDATE,
574            p_last_updated_by        =>     FND_GLOBAL.USER_ID,
575            p_last_update_login      =>     FND_GLOBAL.CONC_LOGIN_ID,
576            p_org_id                 =>     l_org_id,
577            p_supp_trade_profile_id  =>     p_process_setup_rec.supp_trade_profile_id,
578            p_process_code           =>     p_process_setup_rec.process_code,
582            p_attribute1             =>     p_process_setup_rec.attribute1,
579            p_enabled_flag           =>     p_process_setup_rec.enabled_flag,
580            p_automatic_flag         =>     p_process_setup_rec.automatic_flag,
581            p_attribute_category     =>     p_process_setup_rec.attribute_category,
583            p_attribute2             =>     p_process_setup_rec.attribute2,
584            p_attribute3             =>     p_process_setup_rec.attribute3,
585            p_attribute4             =>     p_process_setup_rec.attribute4,
586            p_attribute5             =>     p_process_setup_rec.attribute5,
587            p_attribute6             =>     p_process_setup_rec.attribute6,
588            p_attribute7             =>     p_process_setup_rec.attribute7,
589            p_attribute8             =>     p_process_setup_rec.attribute8,
590            p_attribute9             =>     p_process_setup_rec.attribute9,
591            p_attribute10            =>     p_process_setup_rec.attribute10,
592            p_attribute11            =>     p_process_setup_rec.attribute11,
593            p_attribute12            =>     p_process_setup_rec.attribute12,
594            p_attribute13            =>     p_process_setup_rec.attribute13,
595            p_attribute14            =>     p_process_setup_rec.attribute14,
596            p_attribute15            =>     p_process_setup_rec.attribute15);
597 
598 
599 
600         EXCEPTION
601            WHEN OTHERS THEN
602              OZF_UTILITY_PVT.debug_message (SQLERRM ||'  Error in updating OZF_PROCESS_SETUP table');
603              RAISE FND_API.G_EXC_ERROR;
604        END;
605         x_object_version_number.EXTEND;
606         x_object_Version_number(x_object_version_number.count) := p_process_setup_rec.Object_Version_Number;
607 
608      END LOOP;
609    --END IF;
610 
611      -- Standard check for p_commit
612      IF FND_API.to_Boolean( p_commit )
613      THEN
614          COMMIT WORK;
615      END IF;
616 
617 
618      -- Debug Message
619      IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low) THEN
620         OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
621      END IF;
622      -- Standard call to get message count and if count is 1, get message info.
623      FND_MSG_PUB.Count_And_Get
624         (p_count          =>   x_msg_count,
625          p_data           =>   x_msg_data
626       );
627 EXCEPTION
628    WHEN FND_API.G_EXC_ERROR THEN
629     ROLLBACK TO update_process_setup_pvt;
630     x_return_status := FND_API.G_RET_STS_ERROR;
631     -- Standard call to get message count and if count=1, get the message
632     FND_MSG_PUB.Count_And_Get (
633             p_encoded => FND_API.G_FALSE,
634             p_count => x_msg_count,
635             p_data  => x_msg_data
636     );
637    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
638     ROLLBACK TO update_process_setup_pvt;
639     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
640     -- Standard call to get message count and if count=1, get the message
641     FND_MSG_PUB.Count_And_Get (
642             p_encoded => FND_API.G_FALSE,
643             p_count => x_msg_count,
644              p_data  => x_msg_data
645     );
646    WHEN OTHERS THEN
647     ROLLBACK TO update_process_setup_pvt;
648     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
649     IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
650     THEN
651             FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
652     END IF;
653     -- Standard call to get message count and if count=1, get the message
654     FND_MSG_PUB.Count_And_Get (
655             p_encoded => FND_API.G_FALSE,
656             p_count => x_msg_count,
657             p_data  => x_msg_data
658     );
659 
660 END Update_process_Setup;
661 
662 
663 
664 PROCEDURE Update_Process_Setup_Tbl(
665     P_Api_Version_Number         IN  NUMBER,
666     P_Init_Msg_List              IN  VARCHAR2     := FND_API.G_FALSE,
667     P_Commit                     IN  VARCHAR2     := FND_API.G_FALSE,
668     p_validation_level           IN  NUMBER       := FND_API.G_VALID_LEVEL_FULL,
669     X_Return_Status              OUT NOCOPY VARCHAR2,
670     X_Msg_Count                  OUT NOCOPY NUMBER,
671     X_Msg_Data                   OUT NOCOPY VARCHAR2,
672     P_process_setup_Tbl        IN  process_setup_tbl_type
673     )
674 IS
675 l_api_name                CONSTANT VARCHAR2(30) := 'update_process_setup_tbl';
676 l_api_version_number      CONSTANT NUMBER   := 1.0;
677 
678 p_process_setup_rec     process_setup_rec_type;
679 
680 l_process_setup_id      NUMBER;
681 v_process_setup_id      JTF_NUMBER_TABLE;
682 v_object_version_number   JTF_NUMBER_TABLE;
683 
684 l_create_flag             VARCHAR2(10);
685 
686 l_create_pro_setup_tbl    process_setup_tbl_type := process_setup_tbl_type();
687 l_update_pro_setup_tbl    process_setup_tbl_type := process_setup_tbl_type();
688 
689 l_cc_cnt                  NUMBER := 0;
690 l_up_cnt                  NUMBER := 0;
691 
692 BEGIN
693       -- Standard Start of API savepoint
694      SAVEPOINT update_process_setup_tbl_pvt;
695 
696      IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low) THEN
697         OZF_UTILITY_PVT.debug_message('Entered the proc tbl');
698      END IF;
702                                            p_api_version_number,
699 
700       -- Standard call to check for call compatibility.
701       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
703                                            l_api_name,
704                                            G_PKG_NAME)
705       THEN
706           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
707       END IF;
708 
709       -- Initialize message list if p_init_msg_list is set to TRUE.
710       IF FND_API.to_Boolean( p_init_msg_list )
711       THEN
712           FND_MSG_PUB.initialize;
713       END IF;
714 
715       -- ******************************************************************
716       -- Validate Environment
717       -- ******************************************************************
718       IF FND_GLOBAL.User_Id IS NULL
719       THEN
720           IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
721           THEN
722               FND_MESSAGE.Set_Name('OZF', 'OZF_USER_PROFILE_MISSING');
723               FND_MSG_PUB.ADD;
724           END IF;
725           RAISE FND_API.G_EXC_ERROR;
726       END IF;
727 
728       -- Debug Message
729       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low) THEN
730          OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
731          OZF_UTILITY_PVT.debug_message('Total Number of records '||P_process_setup_Tbl.count);
732       END IF;
733       -- Initialize API return status to SUCCESS
734       x_return_status := FND_API.G_RET_STS_SUCCESS;
735 
736       v_process_setup_id    :=   JTF_NUMBER_TABLE();
737       v_object_version_number :=   JTF_NUMBER_TABLE();
738 
739       FOR i IN P_process_setup_Tbl.first .. P_process_setup_Tbl.last
740       LOOP
741       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low) THEN
742       OZF_UTILITY_PVT.debug_message('i' ||i);
743       OZF_UTILITY_PVT.debug_message('P_process_setup_Tbl(i).process_setup_id'||P_process_setup_Tbl(i).process_setup_id);
744       OZF_UTILITY_PVT.debug_message('P_process_setup_Tbl(i).org_id'||P_process_setup_Tbl(i).org_id);
745       OZF_UTILITY_PVT.debug_message('P_process_setup_Tbl(i).enabled_flag'||P_process_setup_Tbl(i).enabled_flag);
746       OZF_UTILITY_PVT.debug_message('P_process_setup_Tbl(i).automatic_flag'||P_process_setup_Tbl(i).automatic_flag);
747       OZF_UTILITY_PVT.debug_message('P_process_setup_Tbl(i).supp_trade_profile_id'||P_process_setup_Tbl(i).supp_trade_profile_id);
748       OZF_UTILITY_PVT.debug_message('P_process_setup_Tbl(i).process_code'||P_process_setup_Tbl(i).process_code);
749       end if;
750 --      OZF_UTILITY_PVT.debug_message('P_process_setup_Tbl(i).process_setup_id'||P_process_setup_Tbl(i).process_setup_id);
751           l_process_setup_id := P_process_setup_Tbl(i).process_setup_id;
752           P_process_setup_Rec := P_process_setup_Tbl(i);
753 
754 
755 
756 
757          IF l_process_setup_id IS NULL OR l_process_setup_id  = -1   then
758              l_cc_cnt := l_cc_cnt + 1;
759 
760              l_create_pro_setup_tbl.extend;
761              l_create_pro_setup_tbl(l_cc_cnt) := P_process_setup_Rec;
762 
763           ELSE
764              l_up_cnt := l_up_cnt + 1;
765 
766              l_update_pro_setup_tbl.extend;
767              l_update_pro_setup_tbl(l_up_cnt) := P_process_setup_Rec;
768           END IF;
769 
770 
771 
772       END LOOP;
773       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low) THEN
774          OZF_UTILITY_PVT.debug_message('No of rows to be created: ' || l_cc_cnt);
775          OZF_UTILITY_PVT.debug_message('No of rows to be updated: ' || l_up_cnt);
776       END IF;
777 
778       IF  l_cc_cnt > 0 THEN
779              --- Call to Create Procedure
780              Create_process_setup
781              (
782                 p_api_version_number         =>  p_api_version_number,
783                 p_init_msg_list              =>  p_init_msg_list,
784                 p_commit                     =>  p_commit,
785                 p_validation_level           =>  p_validation_level,
786                 x_return_status              =>  x_return_Status,
787                 x_msg_count                  =>  x_msg_Count,
788                 x_msg_data                   =>  x_msg_Data,
789                 p_process_setup_tbl        =>  l_create_pro_setup_tbl,
790                 x_process_setup_id_tbl     =>  v_process_setup_id
791               );
792 
793             IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
794                RAISE FND_API.G_EXC_ERROR;
795             END IF;
796       END IF;
797 
798       IF l_up_cnt > 0 THEN
799               -- Call to Update Procedure
800             Update_process_setup (
801                p_api_version_number         =>  p_api_version_number ,
802                p_init_msg_list              =>  p_init_msg_list,
803                p_commit                     =>  p_commit,
804                p_validation_level           =>  p_validation_level,
805                x_return_status              =>  x_return_Status,
806                x_msg_count                  =>  x_msg_Count,
807                x_msg_data                   =>  x_msg_Data,
808                p_process_setup_tbl        =>  l_update_pro_setup_tbl,
809                x_object_version_number      =>  v_object_version_number
810               );
811 
812             IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
816 
813                RAISE FND_API.G_EXC_ERROR;
814             END IF;
815        END IF;
817       -- Standard check for p_commit
818       IF FND_API.to_Boolean( p_commit )
819       THEN
820           COMMIT WORK;
821       END IF;
822 
823       -- Debug Message
824       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low) THEN
825          OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
826       END IF;
827       -- Standard call to get message count and if count is 1, get message info.
828       FND_MSG_PUB.Count_And_Get
829         (p_count          =>   x_msg_count,
830          p_data           =>   x_msg_data
831       );
832 EXCEPTION
833    WHEN FND_API.G_EXC_ERROR THEN
834     ROLLBACK TO update_process_setup_tbl_pvt;
835     x_return_status := FND_API.G_RET_STS_ERROR;
836     -- Standard call to get message count and if count=1, get the message
837     FND_MSG_PUB.Count_And_Get (
838             p_encoded => FND_API.G_FALSE,
839             p_count => x_msg_count,
840             p_data  => x_msg_data
841     );
842    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
843     ROLLBACK TO update_process_setup_tbl_pvt;
844     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
845     -- Standard call to get message count and if count=1, get the message
846     FND_MSG_PUB.Count_And_Get (
847             p_encoded => FND_API.G_FALSE,
848             p_count => x_msg_count,
849              p_data  => x_msg_data
850     );
851    WHEN OTHERS THEN
852     ROLLBACK TO update_process_setup_tbl_pvt;
853     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
854     IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
855     THEN
856             FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
857     END IF;
858     -- Standard call to get message count and if count=1, get the message
859     FND_MSG_PUB.Count_And_Get (
860             p_encoded => FND_API.G_FALSE,
861             p_count => x_msg_count,
862             p_data  => x_msg_data
863     );
864 
865 
866 END Update_Process_Setup_Tbl;
867 
868 
869 
870 PROCEDURE Check_uniq_process_setup(
871     p_process_setup_rec       IN    process_setup_rec_type,
872     p_validation_mode           IN    VARCHAR2 := JTF_PLSQL_API.g_create,
873     x_return_status             OUT NOCOPY   VARCHAR2
874 )
875 IS
876   l_api_name                CONSTANT VARCHAR2(30) := 'Check_uniq_process_setup';
877   l_api_version_number      CONSTANT NUMBER   := 1.0;
878 
879 
880    CURSOR csr_pro_setup_4stp(cv_supp_trade_profile_id NUMBER
881                              ,cv_process_code VARCHAR2)
882    IS
883       SELECT COUNT(process_setup_id)
884       FROM   ozf_process_setup_all
885       WHERE  process_code =  cv_process_code
886       AND supp_trade_profile_id = cv_supp_trade_profile_id ;
887 
888    CURSOR csr_pro_setup_4org(cv_process_code VARCHAR2,
889                              cv_org_id  NUMBER
890                             )
891    IS
892      SELECT COUNT(process_setup_id)
893      FROM   ozf_process_setup_all
894      WHERE supp_trade_profile_id IS NULL
895      AND org_id = cv_org_id
896      AND process_code = cv_process_code ;
897 
898 
899    l_valid_flag         VARCHAR2(30);
900    l_psi_dummy          NUMBER := 0;
901 
902 
903 
904 BEGIN
905 
906    x_return_status := FND_API.g_ret_sts_success;
907    IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low) THEN
908       OZF_UTILITY_PVT.debug_message('in '||l_api_name);
909 
910    END IF;
911    IF p_validation_mode = JTF_PLSQL_API.g_create THEN
912       IF p_process_setup_rec.supp_trade_profile_id = FND_API.g_miss_num OR
913          p_process_setup_rec.supp_trade_profile_id IS NULL
914           THEN
915             l_psi_dummy := 0;
916 
917             IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low) THEN
918                OZF_UTILITY_PVT.debug_message('Enabled flag '  ||p_process_setup_rec.enabled_flag );
919                OZF_UTILITY_PVT.debug_message('Org ID '  || p_process_setup_rec.org_id );
920             END IF;
921 
922             OPEN csr_pro_setup_4org(p_process_setup_rec.process_code,p_process_setup_rec.org_id);
923             FETCH csr_pro_setup_4org
924             INTO  l_psi_dummy;
925             CLOSE csr_pro_setup_4org;
926 
927 
928             IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low) THEN
929                OZF_UTILITY_PVT.debug_message('Duplicate Process setup id' || p_process_setup_rec.process_setup_id );
930             END IF;
931             IF l_psi_dummy > 0 THEN
932                l_valid_flag :=  FND_API.g_false;
933             END IF;
934          ELSE
935            l_psi_dummy := NULL;
936            OPEN csr_pro_setup_4stp(  p_process_setup_rec.supp_trade_profile_id,
937                                      p_process_setup_rec.process_code);
938            FETCH csr_pro_setup_4stp
939            INTO  l_psi_dummy;
940            CLOSE csr_pro_setup_4stp;
941 
942 
943 
944 
945            IF l_psi_dummy > 0 THEN
946              IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
947               FND_MESSAGE.set_name('OZF', 'OZF_DUPLICATE_PROCESS_SETUP');
948               FND_MSG_PUB.add;
949              END IF;
953 
950              RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
951               l_valid_flag :=  FND_API.g_false;
952            END IF;
954             IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low) THEN
955               OZF_UTILITY_PVT.debug_message('Count of code map for psi ' || l_psi_dummy);
956             END IF;
957          END IF;
958    ELSE -- for update mode
959       l_valid_flag := FND_API.g_true;
960    END IF;
961 
962    IF l_valid_flag = FND_API.g_false THEN
963       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
964          FND_MESSAGE.set_name('OZF', 'OZF_DUPLICATE_PROCESS_SETUP');
965          FND_MSG_PUB.add;
966       END IF;
967       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
968       x_return_status := FND_API.G_RET_STS_ERROR;
969    END IF;
970 
971 END Check_Uniq_Process_Setup;
972 
973 
974 -- Start of Comments
975 --
976 -- Required Items Check procedure
977 --
978 -- p_validation_mode is a constant defined in OZF_UTILITY_PVT package
979 --                  For create: G_CREATE, for update: G_UPDATE
980 -- End of Comments
981 
982 
983 PROCEDURE  check_process_setup_items
984 (
985    p_process_setup_rec   IN    process_setup_rec_type,
986    p_validation_mode       IN    VARCHAR2,
987    x_return_status         OUT NOCOPY  VARCHAR2
988 )
989 
990 IS
991   l_api_name                CONSTANT VARCHAR2(30) := 'check_process_setup_items';
992   l_api_version_number      CONSTANT NUMBER   := 1.0;
993 
994 BEGIN
995 
996    x_return_status := FND_API.g_ret_sts_success;
997 
998    IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low) THEN
999       OZF_UTILITY_PVT.debug_message('in '||l_api_name);
1000    END IF;
1001 
1002    IF p_process_setup_rec.org_id = FND_API.g_miss_num OR
1003          p_process_setup_rec.org_id IS NULL
1004    THEN
1005       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1006          FND_MESSAGE.set_name('OZF', 'OZF_ORG_ID_MISSING');
1007          FND_MSG_PUB.add;
1008       END IF;
1009     x_return_status := FND_API.G_RET_STS_ERROR;
1010    END IF;
1011    IF x_return_status <> FND_API.g_ret_sts_success THEN
1012        RETURN;
1013     END IF;
1014 
1015     check_uniq_process_setup( p_process_setup_rec,
1016                                 p_validation_mode,
1017                                 x_return_status
1018                                  );
1019     IF x_return_status <> FND_API.g_ret_sts_success THEN
1020        RETURN;
1021     END IF;
1022 
1023     IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low) THEN
1024        OZF_UTILITY_PVT.debug_message('after check_uniq_process_setup ' );
1025     END IF;
1026 
1027 
1028 END check_process_setup_items;
1029 -- Start of Comments
1030 --
1031 --  validation procedures
1032 --
1033 -- p_validation_mode is a constant defined in OZF_UTILITY_PVT package
1034 --                  For create: G_CREATE, for update: G_UPDATE
1035 -- End of Comments
1036 
1037 PROCEDURE Validate_Process_Setup(
1038     p_api_version_number         IN   NUMBER,
1039     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
1040     p_validation_level           IN   NUMBER := FND_API.G_VALID_LEVEL_FULL,
1041     p_validation_mode            IN   VARCHAR2,
1042     p_process_setup_tbl        IN    process_setup_tbl_type,
1043     x_return_status              OUT NOCOPY  VARCHAR2,
1044     x_msg_count                  OUT NOCOPY  NUMBER,
1045     x_msg_data                   OUT NOCOPY  VARCHAR2
1046     )
1047 
1048 IS
1049    l_api_name                CONSTANT VARCHAR2(30) := 'Validate_process_setup';
1050    l_api_version_number      CONSTANT NUMBER   := 1.0;
1051    l_object_version_number   NUMBER;
1052 
1053    l_process_setup_rec     process_setup_rec_type ;
1054 
1055 
1056 BEGIN
1057       -- Standard Start of API savepoint
1058       SAVEPOINT validate_process_setup_pvt;
1059 
1060       -- Standard call to check for call compatibility.
1061       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1062                                            p_api_version_number,
1063                                            l_api_name,
1064                                            G_PKG_NAME)
1065       THEN
1066           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1067       END IF;
1068 
1069       -- Initialize message list if p_init_msg_list is set to TRUE.
1070       IF FND_API.to_Boolean( p_init_msg_list )
1071       THEN
1072           FND_MSG_PUB.initialize;
1073       END IF;
1074       -- Call the Validate Item procedure for the item(field level validations )
1075       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low) THEN
1076          OZF_UTILITY_PVT.debug_message('in '||l_api_name );
1077       END IF;
1078       x_return_status := FND_API.g_ret_sts_success;
1079 
1080       IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1081 
1082       FOR i in 1 .. p_process_setup_tbl.count
1083       LOOP
1084          IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low) THEN
1085             OZF_UTILITY_PVT.debug_message('inside the loop p_process_setup_tbl ' );
1086          END IF;
1087          l_process_setup_rec := p_process_setup_tbl(i);
1088 
1089          IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low) THEN
1090             OZF_UTILITY_PVT.debug_message('Enabled flag '  || l_process_setup_rec.enabled_flag );
1091             OZF_UTILITY_PVT.debug_message('automatic flag '|| l_process_setup_rec.automatic_flag );
1092             OZF_UTILITY_PVT.debug_message('Process code'  || l_process_setup_rec.process_code );
1093          END IF;
1094 
1095          check_process_setup_items(
1096            p_process_setup_rec      => l_process_setup_rec,
1097            p_validation_mode          => p_validation_mode,
1098            x_return_status            => x_return_status);
1099 
1100 
1101          IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1102             RAISE FND_API.G_EXC_ERROR;
1103          ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1104             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1105          END IF;
1106       END LOOP;
1107 
1108       END IF;
1109       -- Initialize API return status to SUCCESS
1110       x_return_status := FND_API.G_RET_STS_SUCCESS;
1111       -- Standard call to get message count and if count is 1, get message info.
1112       FND_MSG_PUB.Count_And_Get
1113         (p_count          =>   x_msg_count,
1114          p_data           =>   x_msg_data
1115         );
1116 EXCEPTION
1117    WHEN OZF_Utility_PVT.resource_locked THEN
1118       x_return_status := FND_API.g_ret_sts_error;
1119       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1120             FND_MESSAGE.set_name('OZF', 'OZF_API_RESOURCE_LOCKED ');
1121             FND_MSG_PUB.add;
1122       END IF;
1123    WHEN FND_API.G_EXC_ERROR THEN
1124       ROLLBACK TO validate_process_setup_pvt;
1125       x_return_status := FND_API.G_RET_STS_ERROR;
1126       -- Standard call to get message count and if count=1, get the message
1127       FND_MSG_PUB.Count_And_Get (
1128             p_encoded => FND_API.G_FALSE,
1129             p_count   => x_msg_count,
1130             p_data    => x_msg_data
1131       );
1132    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1133      ROLLBACK TO validate_process_setup_pvt;
1134      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1135      -- Standard call to get message count and if count=1, get the message
1136      FND_MSG_PUB.Count_And_Get (
1137             p_encoded => FND_API.G_FALSE,
1138             p_count => x_msg_count,
1139             p_data  => x_msg_data
1140      );
1141    WHEN OTHERS THEN
1142      ROLLBACK TO validate_process_setup_pvt;
1143      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1144      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1145      THEN
1146         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1147      END IF;
1148      -- Standard call to get message count and if count=1, get the message
1149      FND_MSG_PUB.Count_And_Get (
1150             p_encoded => FND_API.G_FALSE,
1151             p_count => x_msg_count,
1152             p_data  => x_msg_data
1153         );
1154 
1155 END Validate_process_setup;
1156 END Ozf_Process_Setup_Pvt;
1157 
1158 
1159 
1160