DBA Data[Home] [Help]

PACKAGE BODY: APPS.CSI_ORG_UNIT_VLD_PVT

Source


1 PACKAGE BODY csi_org_unit_vld_pvt AS
2 /* $Header: csivouvb.pls 120.2.12010000.2 2009/03/06 21:29:52 hyonlee ship $ */
3 
4 g_pkg_name   VARCHAR2(30) := 'csi_org_unit_vld_pvt';
5 
6 /*----------------------------------------------------------*/
7 /* Function Name :  Is_Valid_instance_id                    */
8 /*                                                          */
9 /* Description  :  This function checks if  instance        */
10 /*                 ids are valid                            */
11 /*----------------------------------------------------------*/
12 
13 FUNCTION Is_Valid_instance_id
14                (p_instance_id   IN      NUMBER
15                 ,p_event        IN      VARCHAR2
16                ,p_stack_err_msg IN      BOOLEAN )
17 RETURN BOOLEAN
18 IS
19   l_instance_id            NUMBER;
20 BEGIN
21   -- Verify that instance id is passed
22   IF p_instance_id IS NULL THEN
23     IF ( p_stack_err_msg = TRUE ) THEN
24         FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_INSTANCE_ID');
25            FND_MESSAGE.SET_TOKEN('INSTANCE_ID',p_instance_id);
26            FND_MSG_PUB.Add;
27     END IF;
28     RETURN FALSE;
29   ELSE
30     BEGIN
31       SELECT  '1'
32       INTO    l_instance_id
33       FROM    csi_item_instances
34       WHERE   instance_id = p_instance_id
35       AND     ((active_end_date is NULL) OR (active_end_date  >= SYSDATE));
36       RETURN TRUE;
37     EXCEPTION
38       WHEN NO_DATA_FOUND THEN
39         IF p_event = 'INSERT' THEN
40             IF ( p_stack_err_msg = TRUE ) THEN
41                FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_INSTANCE_ID');
42                   FND_MESSAGE.SET_TOKEN('INSTANCE_ID',p_instance_id);
43                   FND_MSG_PUB.Add;
44             END IF;
45             RETURN FALSE;
46         ELSIF p_event = 'UPDATE' THEN
47             IF ( p_stack_err_msg = TRUE ) THEN
48                FND_MESSAGE.SET_NAME('CSI','CSI_API_EXPIRED_INSTANCE_ID');
49                   FND_MESSAGE.SET_TOKEN('INSTANCE_ID',p_instance_id);
50                   FND_MSG_PUB.Add;
51             END IF;
52             RETURN FALSE;
53         END IF;
54     END;
55   END IF;
56 END Is_Valid_instance_id;
57 
58 
59 
60 /*----------------------------------------------------------*/
61 /* Function Name :  Val_inst_id_for_update                  */
62 /*                                                          */
63 /* Description  :  This function checks if  instance        */
64 /*                 ids can be updated                       */
65 /*----------------------------------------------------------*/
66 
67 FUNCTION Val_inst_id_for_update
68               (p_instance_id_new    IN      NUMBER
69                ,p_instance_id_old   IN      NUMBER
70                ,p_stack_err_msg     IN      BOOLEAN )
71 RETURN BOOLEAN
72 IS
73   l_instance_id            NUMBER;
74 BEGIN
75   -- Verify that instance id is passed
76   IF (p_instance_id_old = p_instance_id_new) THEN
77      RETURN TRUE;
78   ELSE
79      IF ( p_stack_err_msg = TRUE ) THEN
80           FND_MESSAGE.SET_NAME('CSI','CSI_API_CANT_CHANGE_INST_ID');
81           FND_MESSAGE.SET_TOKEN('INSTANCE_ID_OLD',p_instance_id_old);
82           FND_MSG_PUB.Add;
83      END IF;
84      RETURN FALSE;
85   END IF;
86 
87 EXCEPTION
88    WHEN OTHERS THEN
89         IF ( p_stack_err_msg = TRUE ) THEN
90           FND_MESSAGE.SET_NAME('CSI','CSI_API_CANT_CHANGE_INST_ID');
91           FND_MESSAGE.SET_TOKEN('INSTANCE_ID_OLD',p_instance_id_old);
92           FND_MSG_PUB.Add;
93         END IF;
94         RETURN FALSE;
95 END Val_inst_id_for_update;
96 
97 /*----------------------------------------------------------*/
98 /* Function Name :  Is_StartDate_Valid                      */
99 /*                                                          */
100 /* Description  :  This function checks if start date       */
101 /*                 is valid                                 */
102 /*----------------------------------------------------------*/
103 
104 FUNCTION Is_StartDate_Valid
105    (p_start_date            IN OUT NOCOPY  DATE,
106     p_end_date              IN       DATE,
107     p_instance_id           IN       NUMBER,
108     p_stack_err_msg         IN      BOOLEAN
109 ) RETURN BOOLEAN IS
110    l_return_value  BOOLEAN := TRUE;
111    CURSOR c1 IS
112       SELECT active_start_date,
113              active_end_date
114       FROM csi_item_instances
115       WHERE instance_id = p_instance_id ;
116       l_date_rec  c1%ROWTYPE;
117 BEGIN
118       IF  ((p_start_date IS NULL) OR  (p_start_date = FND_API.G_MISS_DATE)) THEN
119           p_start_date := SYSDATE;
120           RETURN l_return_value;
121       END IF;
122 
123       IF ((p_end_date is NOT NULL)
124          AND
125          (p_end_date <> FND_API.G_MISS_DATE)
126          AND
127          (p_start_date > p_end_date)) THEN
128             l_return_value  := FALSE;
129             FND_MESSAGE.SET_NAME('CSI','CSI_API_INVAL_ORG_START_DATE');
130             FND_MESSAGE.SET_TOKEN('START_DATE',p_start_date);
131             FND_MSG_PUB.Add;
132             RETURN l_return_value;
133       END IF;
134 
135       OPEN c1;
136         FETCH c1 INTO l_date_rec;
137         IF c1%NOTFOUND THEN
138               l_return_value  := FALSE;
139               IF ( p_stack_err_msg = TRUE ) THEN
140                   FND_MESSAGE.SET_NAME('CSI','CSI_API_INVAL_INST_START_DATE');
141                   FND_MESSAGE.SET_TOKEN('ENTITY','Operating Unit');
142                   FND_MSG_PUB.Add;
143               END IF;
144         END IF;
145 
146         --IF block for bug 5939688--
147         IF (to_date(p_start_date,'DD-MM-YY HH24:MI') < to_date(l_date_rec.active_start_date,'DD-MM-YY HH24:MI'))  -- Modified for bug 7333900
148         THEN
149           l_return_value  := TRUE;
150           p_start_date := l_date_rec.active_start_date;
151          END IF;
152 
153         IF (to_date(p_start_date,'DD-MM-YY HH24:MI') > NVL(to_date(l_date_rec.active_end_date,'DD-MM-YY HH24:MI'),to_date(p_start_date,'DD-MM-YY HH24:MI'))  -- Modified for bug 7333900
154           OR
155           (to_date(p_start_date,'DD-MM-YY HH24:MI') > to_date(SYSDATE,'DD-MM-YY HH24:MI')))  -- Modified for bug 7333900
156         THEN
157           l_return_value  := FALSE;
158           IF ( p_stack_err_msg = TRUE ) THEN
159               FND_MESSAGE.SET_NAME('CSI','CSI_API_INVAL_ORG_START_DATE');
160               FND_MESSAGE.SET_TOKEN('START_DATE',p_start_date);
161               FND_MSG_PUB.Add;
162           END IF;
163         END IF;
164       CLOSE c1;
165       RETURN l_return_value;
166 END Is_StartDate_Valid;
167 
168 
169 /*----------------------------------------------------------*/
170 /* Function Name :  Is_EndDate_Valid                        */
171 /*                                                          */
172 /* Description  :  This function checks if end date         */
173 /*                 is valid                                 */
174 /*----------------------------------------------------------*/
175 FUNCTION Is_EndDate_Valid
176   ( p_start_date            IN   DATE,
177     p_end_date              IN   DATE,
178     p_instance_id           IN NUMBER,
179     p_instance_ou_id        IN NUMBER,
180     p_txn_id                IN NUMBER,
181     p_stack_err_msg         IN BOOLEAN
182   ) RETURN BOOLEAN IS
183 
184   l_return_value  BOOLEAN := TRUE;
185   l_transaction_date  date;
186 
187   CURSOR c1 IS
188        SELECT active_end_date,
189            active_start_date
190        FROM csi_item_instances
191        WHERE instance_id = p_instance_id ;
192  l_date_rec  c1%ROWTYPE;
193 
194 BEGIN
195       IF  ((p_instance_ou_id IS NULL) OR  (p_instance_ou_id = FND_API.G_MISS_NUM)) THEN
196         IF ((p_end_date is NOT NULL) and (p_end_date <> fnd_api.g_miss_date)) THEN
197            IF p_end_date < sysdate THEN
198              l_return_value  := FALSE;
199               FND_MESSAGE.SET_NAME('CSI','CSI_API_INVAL_ORG_END_DATE');
200 	          FND_MESSAGE.SET_TOKEN('END_DATE',p_end_date);
201 	          FND_MSG_PUB.Add;
202               l_return_value := FALSE;
203               RETURN l_return_value;
204             END IF;
205         END IF;
206           RETURN l_return_value;
207 
208      ELSE
209 
210       IF p_end_date < sysdate THEN
211          SELECT MAX(t.transaction_date)
212          INTO   l_transaction_date
213          FROM   csi_i_org_assignments_h s,
214                 csi_transactions t
215          WHERE  s.instance_ou_id=p_instance_ou_id
216          AND    s.transaction_id=t.transaction_id
217 	    AND    t.transaction_id <> p_txn_id;
218 
219           IF l_transaction_date > p_end_date
220            THEN
221             fnd_message.set_name('CSI','CSI_HAS_TXNS');
222             fnd_message.set_token('END_DATE_ACTIVE',p_end_date);
223             fnd_msg_pub.add;
224             l_return_value := FALSE;
225             RETURN l_return_value;
226           END IF;
227       END IF;
228 
229       IF ((p_end_date is not null) and (p_end_date <> fnd_api.g_miss_date)) then
230        OPEN c1;
231            FETCH c1 INTO l_date_rec;
232            IF (p_end_date > NVL(l_date_rec.active_end_date, p_end_date))
233               OR
234               (p_end_date < l_date_rec.active_start_date)
235            THEN
236                  l_return_value  := FALSE;
237                  IF ( p_stack_err_msg = TRUE ) THEN
238                    FND_MESSAGE.SET_NAME('CSI','CSI_API_INVAL_ORG_END_DATE');
239                    FND_MESSAGE.SET_TOKEN('END_DATE',p_end_date);
240                    FND_MSG_PUB.Add;
241                  END IF;
242                  RETURN l_return_value;
243            END IF;
244        CLOSE c1;
245       END IF;
246      END IF;
247     RETURN l_return_value;
248 
249 END Is_EndDate_Valid;
250 
251 
252 /*----------------------------------------------------------*/
253 /* Function Name :  Is_Valid_operating_unit_id              */
254 /*                                                          */
255 /* Description  :  This function checks if operating        */
256 /*                 unit ids are valid                       */
257 /*----------------------------------------------------------*/
258 
259 FUNCTION Is_Valid_operating_unit_id
260          (p_operating_unit_id   IN   NUMBER
261             ,p_stack_err_msg IN      BOOLEAN)
262 RETURN BOOLEAN
263 IS
264   l_operating_unit_id   NUMBER;
265   BEGIN
266 
267         -- Verify that operating unit is passed
268     IF p_operating_unit_id IS NULL THEN
269         RETURN FALSE;
270     ELSE
271        BEGIN
272              SELECT  '1'
273              INTO    l_operating_unit_id
274              FROM    hr_operating_units
275              WHERE   organization_id = p_operating_unit_id ;
276              RETURN TRUE;
277 
278        EXCEPTION
279              WHEN NO_DATA_FOUND THEN
280              IF ( p_stack_err_msg = TRUE ) THEN
281                    FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_OPERATING_UNIT');
282                    FND_MESSAGE.SET_TOKEN('OPERATING_UNIT',p_operating_unit_id);
283                    FND_MSG_PUB.Add;
284               END IF;
285               RETURN FALSE;
286          END;
287        END IF;
288 END Is_Valid_operating_unit_id;
289 
290 
291 /*----------------------------------------------------------*/
292 /* Function Name :  Is_Valid_rel_type_code                  */
293 /*                                                          */
294 /* Description  :  This function checks if                  */
295 /*                 relationship_type_code is valid          */
296 /*----------------------------------------------------------*/
297 
298 FUNCTION Is_Valid_rel_type_code
299          (p_relationship_type_code   IN   VARCHAR2
300         ,p_stack_err_msg IN      BOOLEAN )
301 RETURN BOOLEAN
302 IS
303   l_relationship_type_code   VARCHAR2(30);
304   l_rltn_lookup_type         VARCHAR2(30) := 'CSI_IO_RELATIONSHIP_TYPE_CODE';
305  BEGIN
306       SELECT  '1'
307       INTO    l_relationship_type_code
308       FROM    csi_lookups
309       WHERE   lookup_type = l_rltn_lookup_type
310       AND     lookup_code = p_relationship_type_code;
311 
312       RETURN TRUE;
313  EXCEPTION
314       WHEN NO_DATA_FOUND THEN
315        IF ( p_stack_err_msg = TRUE ) THEN
316            FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_REL_TYPE_CODE');
317            FND_MESSAGE.SET_TOKEN('RELATIONSHIP_TYPE_CODE',p_relationship_type_code);
318            FND_MSG_PUB.Add;
319       END IF;
320       RETURN FALSE;
321 END Is_Valid_rel_type_code;
322 
323 
324 /*----------------------------------------------------------*/
325 /* Function Name :  Alternate_PK_exists                     */
326 /*                                                          */
327 /* Description  :  This function checks if                  */
328 /*                 alternate PKs are valid                  */
329 /*----------------------------------------------------------*/
330 
331 FUNCTION Alternate_PK_exists
332          (p_instance_id              IN   NUMBER
333          ,p_operating_unit_id        IN   NUMBER
334          ,p_relationship_type_code   IN   VARCHAR2
335          ,p_instance_ou_id           IN   NUMBER
336          ,p_stack_err_msg            IN   BOOLEAN )
337 RETURN BOOLEAN
338 IS
339   l_dummy          VARCHAR2(30);
340   l_instance_ou_id NUMBER;
341 
342 BEGIN
343   -- Verify that instance id is passed
344      IF p_instance_ou_id IS NULL THEN
345         l_instance_ou_id := -9999;
346      ELSE
347         l_instance_ou_id := p_instance_ou_id;
348      END IF;
349      --
350      SELECT  '1'
351      INTO    l_dummy
352      FROM    csi_i_org_assignments
353      WHERE   instance_id = p_instance_id
354    --  AND     operating_unit_id = p_operating_unit_id -- Fix for Bug # 3918188
355      AND     instance_ou_id <> l_instance_ou_id
356      AND     relationship_type_code = p_relationship_type_code;
357 
358      IF ( p_stack_err_msg = TRUE ) THEN
359            FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_ALTERNATE_PK');
360           FND_MESSAGE.SET_TOKEN('ALTERNATE_PK',p_instance_id||' '||p_relationship_type_code);
361           FND_MSG_PUB.Add;
362      END IF;
363      RETURN FALSE;
364 
365 EXCEPTION
366       WHEN NO_DATA_FOUND THEN
367         RETURN  TRUE;
368       WHEN OTHERS THEN
369         IF ( p_stack_err_msg = TRUE ) THEN
370            FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_ALTERNATE_PK');
371            FND_MESSAGE.SET_TOKEN('ALTERNATE_PK',p_instance_id||' '||p_relationship_type_code);
372            FND_MSG_PUB.Add;
373          END IF;
374          RETURN FALSE;
375 END Alternate_PK_exists;
376 
377 /*----------------------------------------------------------*/
378 /* Function Name :  Is_Valid_instance_ou_id                 */
379 /*                                                          */
380 /* Description  :  This function checks if                  */
381 /*                 instance_ou_id is  valid                 */
382 /*----------------------------------------------------------*/
383 
384 FUNCTION Is_Valid_instance_ou_id
385        (p_instance_ou_id IN NUMBER
386         ,p_stack_err_msg IN      BOOLEAN
387        )
388 RETURN BOOLEAN
389 IS
390   l_instance_ou_id            NUMBER;
391 BEGIN
392   -- Verify that instance id is passed
393      SELECT  '1'
394      INTO    l_instance_ou_id
395      FROM    csi_i_org_assignments
396      WHERE   instance_ou_id = p_instance_ou_id;
397 
398      IF ( p_stack_err_msg = TRUE ) THEN
399           FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_INST_OU_ID');
400          FND_MESSAGE.SET_TOKEN('INSTANCE_OU_ID',p_instance_ou_id);
401          FND_MSG_PUB.Add;
402      END IF;
403      RETURN FALSE;
404 
405 EXCEPTION
406       WHEN NO_DATA_FOUND THEN
407         RETURN  TRUE;
408 END Is_Valid_instance_ou_id;
409 
410 
411 
412 /*----------------------------------------------------------*/
413 /* Function Name :  Val_and_get_inst_ou_id                */
414 /*                                                          */
415 /* Description  :  This function checks if                  */
416 /*                 instance_ou_id is valid                  */
417 /*----------------------------------------------------------*/
418 
419 
420 FUNCTION Val_and_get_inst_ou_id
421        (p_instance_ou_id  IN      NUMBER
422         ,p_org_unit_rec   OUT NOCOPY csi_datastructures_pub.organization_units_rec
423        ,p_stack_err_msg   IN      BOOLEAN )
424 RETURN BOOLEAN
425 IS
426 
427 BEGIN
428   -- Verify that instance id is passed
429      SELECT instance_ou_id ,
430             instance_id ,
431             operating_unit_id,
432             relationship_type_code,
433             active_start_date,
434             active_end_date,
435             context,
436             attribute1 ,
437             attribute2,
438             attribute3,
439             attribute4,
440             attribute5,
441             attribute6,
442             attribute7,
443             attribute8,
444             attribute9,
445             attribute10,
446             attribute11,
447             attribute12,
448             attribute13,
449             attribute14,
450             attribute15,
451             object_version_number
452      INTO   p_org_unit_rec.instance_ou_id ,
453             p_org_unit_rec.instance_id,
454             p_org_unit_rec.operating_unit_id,
455             p_org_unit_rec.relationship_type_code,
456             p_org_unit_rec.active_start_date,
457             p_org_unit_rec.active_end_date,
458             p_org_unit_rec.context,
459             p_org_unit_rec.attribute1,
460             p_org_unit_rec.attribute2,
461             p_org_unit_rec.attribute3,
462             p_org_unit_rec.attribute4,
463             p_org_unit_rec.attribute5,
464             p_org_unit_rec.attribute6,
465             p_org_unit_rec.attribute7,
466             p_org_unit_rec.attribute8,
467             p_org_unit_rec.attribute9,
468             p_org_unit_rec.attribute10,
469             p_org_unit_rec.attribute11,
470             p_org_unit_rec.attribute12,
471             p_org_unit_rec.attribute13,
472             p_org_unit_rec.attribute14,
473             p_org_unit_rec.attribute15,
474             p_org_unit_rec.object_version_number
475      FROM    csi_i_org_assignments
476      WHERE   instance_ou_id = p_instance_ou_id;
477      RETURN  TRUE;
478 
479 
480 EXCEPTION
481       WHEN NO_DATA_FOUND THEN
482         IF ( p_stack_err_msg = TRUE ) THEN
483           FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_INST_OU_ID');
484           FND_MESSAGE.SET_TOKEN('INSTANCE_OU_ID',p_instance_ou_id);
485           FND_MSG_PUB.Add;
486         END IF;
487         RETURN FALSE;
488 END Val_and_get_inst_ou_id;
489 
490 
491 /*----------------------------------------------------------*/
492 /* Function Name :  Is_Expire_Op                            */
493 /*                                                          */
494 /* Description  :  This function checks if it is a          */
495 /*                 ids are valid and returns values         */
496 /*----------------------------------------------------------*/
497 
498 FUNCTION Is_Expire_Op
499       (p_org_unit_rec    IN csi_datastructures_pub.organization_units_rec
500        ,p_stack_err_msg  IN  BOOLEAN
501        )
502 RETURN BOOLEAN
503 IS
504 BEGIN
505          IF (p_org_unit_rec.instance_id             =      FND_API.G_MISS_NUM)   AND
506             (p_org_unit_rec.operating_unit_id       =      FND_API.G_MISS_NUM)   AND
507             (p_org_unit_rec.relationship_type_code  =      FND_API.G_MISS_CHAR)  AND
508             (p_org_unit_rec.active_start_date       =      FND_API.G_MISS_DATE)  AND
509             (p_org_unit_rec.active_end_date         =      SYSDATE)              AND
510             (p_org_unit_rec.context                 =      FND_API.G_MISS_CHAR)  AND
511             (p_org_unit_rec.attribute1              =      FND_API.G_MISS_CHAR)  AND
512             (p_org_unit_rec.attribute2              =      FND_API.G_MISS_CHAR)  AND
513             (p_org_unit_rec.attribute3              =      FND_API.G_MISS_CHAR)  AND
514             (p_org_unit_rec.attribute4              =      FND_API.G_MISS_CHAR)  AND
515             (p_org_unit_rec.attribute5              =      FND_API.G_MISS_CHAR)  AND
516             (p_org_unit_rec.attribute6              =      FND_API.G_MISS_CHAR)  AND
517             (p_org_unit_rec.attribute7              =      FND_API.G_MISS_CHAR)  AND
518             (p_org_unit_rec.attribute8              =      FND_API.G_MISS_CHAR)  AND
519             (p_org_unit_rec.attribute9              =      FND_API.G_MISS_CHAR)  AND
520             (p_org_unit_rec.attribute10             =      FND_API.G_MISS_CHAR)  AND
521             (p_org_unit_rec.attribute11             =      FND_API.G_MISS_CHAR)  AND
522             (p_org_unit_rec.attribute12             =      FND_API.G_MISS_CHAR)  AND
523             (p_org_unit_rec.attribute13             =      FND_API.G_MISS_CHAR)  AND
524             (p_org_unit_rec.attribute14             =      FND_API.G_MISS_CHAR)  AND
525             (p_org_unit_rec.attribute15             =      FND_API.G_MISS_CHAR)  THEN
526             RETURN TRUE;
527          ELSE
528             RETURN FALSE;
529          END IF;
530 
531 END Is_Expire_Op;
532 
533 
534 
535 /*----------------------------------------------------------*/
536 /* Function Name :  Is_Updatable                            */
537 /*                                                          */
538 /* Description  :  This function checks if this is a        */
539 /*                 an updatable record                      */
540 /*----------------------------------------------------------*/
541 
542 FUNCTION Is_Updatable
543        (p_old_date          IN  DATE
544        ,p_new_date          IN  DATE
545        ,p_stack_err_msg     IN  BOOLEAN
546        )
547 RETURN BOOLEAN
548 IS
549 BEGIN
550    IF p_old_date < SYSDATE THEN
551       IF p_new_date = FND_API.G_MISS_DATE THEN
552         IF ( p_stack_err_msg = TRUE ) THEN
553           FND_MESSAGE.SET_NAME('CSI','CSI_API_NOT_UPDATABLE');
554           FND_MESSAGE.SET_TOKEN('ACTIVE_END_DATE',p_old_date);
555           FND_MSG_PUB.Add;
556         END IF;
557         RETURN FALSE;
558       ELSE
559          RETURN TRUE;
560       END IF;
561    ELSE
562      RETURN TRUE;
563    END IF;
564 
565 END Is_Updatable;
566 
567 
568 /*----------------------------------------------------------*/
569 /* Function Name :  Get_instance_ou_id                      */
570 /*                                                          */
571 /* Description  :  This function generates                  */
572 /*                 instance_ou_ids using a sequence         */
573 /*----------------------------------------------------------*/
574 FUNCTION Get_instance_ou_id
575        ( p_stack_err_msg IN      BOOLEAN
576        )
577 RETURN NUMBER
578 IS
579   l_instance_ou_id            NUMBER;
580 BEGIN
581       SELECT  csi_i_org_assignments_s.nextval
582       INTO    l_instance_ou_id
583       FROM    dual;
584       RETURN  l_instance_ou_id;
585 EXCEPTION
586   WHEN OTHERS THEN
587        IF ( p_stack_err_msg = TRUE ) THEN
588           FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_INST_OU_ID');
589           FND_MESSAGE.SET_TOKEN('INSTANCE_OU_ID',l_instance_ou_id);
590           FND_MSG_PUB.Add;
591        END IF;
592 END Get_instance_ou_id;
593 
594 /*----------------------------------------------------------*/
595 /* Function Name :  get_cis_i_org_assign_h_id               */
596 /*                                                          */
597 /* Description  :  This function generates                  */
598 /*                 cis_i_org_assign_h_id using a sequence   */
599 /*----------------------------------------------------------*/
600 FUNCTION get_cis_i_org_assign_h_id
601        ( p_stack_err_msg IN      BOOLEAN
602          )
603 RETURN NUMBER
604 IS
605   l_cis_i_org_assign_h_id     NUMBER;
606 
607 BEGIN
608       SELECT  csi_i_org_assignments_h_s.nextval
609       INTO    l_cis_i_org_assign_h_id
610       FROM    dual;
611       RETURN  l_cis_i_org_assign_h_id;
612 EXCEPTION
613   WHEN OTHERS THEN
614     IF ( p_stack_err_msg = TRUE ) THEN
615        FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_ORG_ASS_H_ID');
616        FND_MESSAGE.SET_TOKEN('ORG_ASSIGN_H_ID',l_cis_i_org_assign_h_id);
617        FND_MSG_PUB.Add;
618     END IF;
619 END get_cis_i_org_assign_h_id;
620 
621 
622 /*-------------------------------------------------------------- */
623 /* Function Name :  get_object_version_number                    */
624 /*                                                               */
625 /* Description  :  This function generates object_version_number */
626 /*                 using previous version numbers                */
627 /*---------------------------------------------------------------*/
628 FUNCTION get_object_version_number
629        (p_object_version_number IN  NUMBER
630         ,p_stack_err_msg IN      BOOLEAN
631         )
632 RETURN NUMBER
633 IS
634   l_object_version_number     NUMBER;
635 
636 BEGIN
637    l_object_version_number := p_object_version_number + 1;
638    RETURN l_object_version_number;
639 EXCEPTION
640   WHEN OTHERS THEN
641     IF ( p_stack_err_msg = TRUE ) THEN
642       FND_MESSAGE.SET_NAME('CSI','CSI_API_OBJ_VER_MISMATCH');
643       FND_MSG_PUB.Add;
644     END IF;
645 END get_object_version_number ;
646 
647 
648 /*-------------------------------------------------------------- */
649 /* Function Name :  Is_valid_obj_ver_num                         */
650 /*                                                               */
651 /* Description  :  This function generates object_version_number */
652 /*                 using previous version numbers                */
653 /*---------------------------------------------------------------*/
654 FUNCTION Is_valid_obj_ver_num
655     (p_obj_ver_numb_new IN  NUMBER
656     ,p_obj_ver_numb_old IN  NUMBER
657     ,p_stack_err_msg    IN  BOOLEAN
658      )
659 RETURN BOOLEAN
660 IS
661   l_object_version_number     NUMBER;
662 
663 BEGIN
664   IF (p_obj_ver_numb_new = p_obj_ver_numb_old ) THEN
665       RETURN TRUE;
666   ELSE
667       IF ( p_stack_err_msg = TRUE ) THEN
668         FND_MESSAGE.SET_NAME('CSI','CSI_API_OBJ_VER_MISMATCH');
669         FND_MSG_PUB.Add;
670         END IF;
671       RETURN FALSE;
672   END IF;
673 
674 EXCEPTION
675   WHEN OTHERS THEN
676     IF ( p_stack_err_msg = TRUE ) THEN
677       FND_MESSAGE.SET_NAME('CSI','CSI_API_OBJ_VER_MISMATCH');
678       FND_MSG_PUB.Add;
679     END IF;
680     RETURN FALSE;
681 END Is_valid_obj_ver_num;
682 
683 
684 
685 /*-------------------------------------------------------------- */
686 /* Function Name :  get_full_dump_frequency                      */
687 /*                                                               */
688 /* Description  :  This function gets the dump frequency         */
689 /*                                                               */
690 /*---------------------------------------------------------------*/
691 
692 FUNCTION get_full_dump_frequency
693     (p_stack_err_msg IN  BOOLEAN
694      )
695 RETURN NUMBER
696 IS
697   l_dump_frequency     NUMBER;
698 
699 BEGIN
700    IF csi_datastructures_pub.g_install_param_rec.fetch_flag IS NULL THEN
701       csi_gen_utility_pvt.populate_install_param_rec;
702    END IF;
703    --
704    l_dump_frequency := csi_datastructures_pub.g_install_param_rec.history_full_dump_frequency;
705    --
706    IF p_stack_err_msg = TRUE THEN
707       IF l_dump_frequency IS NULL THEN
708          FND_MESSAGE.SET_NAME('CSI','CSI_API_GET_FULL_DUMP_FAILED');
709          FND_MSG_PUB.ADD;
710       END IF;
711    END IF;
712    RETURN l_dump_frequency;
713 END get_full_dump_frequency;
714 
715 
716 END csi_org_unit_vld_pvt;