DBA Data[Home] [Help]

APPS.FND_FLEX_SERVER2 dependencies on FND_FLEX_SERVER1

Line 121: segs IN FND_FLEX_SERVER1.StringArray,

117: /* Private definitions */
118: /* -------------------------------------------------------------------- */
119:
120: FUNCTION cv_rule_violated(nsegs IN NUMBER,
121: segs IN FND_FLEX_SERVER1.StringArray,
122: segfmt IN FND_FLEX_SERVER1.SegFormats,
123: fstruct IN FND_FLEX_SERVER1.FlexStructId,
124: inex IN VARCHAR2,
125: v_date IN DATE,

Line 122: segfmt IN FND_FLEX_SERVER1.SegFormats,

118: /* -------------------------------------------------------------------- */
119:
120: FUNCTION cv_rule_violated(nsegs IN NUMBER,
121: segs IN FND_FLEX_SERVER1.StringArray,
122: segfmt IN FND_FLEX_SERVER1.SegFormats,
123: fstruct IN FND_FLEX_SERVER1.FlexStructId,
124: inex IN VARCHAR2,
125: v_date IN DATE,
126: rule_name OUT nocopy VARCHAR2) RETURN BOOLEAN;

Line 123: fstruct IN FND_FLEX_SERVER1.FlexStructId,

119:
120: FUNCTION cv_rule_violated(nsegs IN NUMBER,
121: segs IN FND_FLEX_SERVER1.StringArray,
122: segfmt IN FND_FLEX_SERVER1.SegFormats,
123: fstruct IN FND_FLEX_SERVER1.FlexStructId,
124: inex IN VARCHAR2,
125: v_date IN DATE,
126: rule_name OUT nocopy VARCHAR2) RETURN BOOLEAN;
127:

Line 128: FUNCTION x_cv_rule_select(fstruct IN FND_FLEX_SERVER1.FlexStructId,

124: inex IN VARCHAR2,
125: v_date IN DATE,
126: rule_name OUT nocopy VARCHAR2) RETURN BOOLEAN;
127:
128: FUNCTION x_cv_rule_select(fstruct IN FND_FLEX_SERVER1.FlexStructId,
129: v_date IN DATE,
130: bad_rule OUT nocopy VARCHAR2) RETURN NUMBER;
131:
132: FUNCTION x_xvc_check_cache(fstruct IN FND_FLEX_SERVER1.FlexStructId,

Line 132: FUNCTION x_xvc_check_cache(fstruct IN FND_FLEX_SERVER1.FlexStructId,

128: FUNCTION x_cv_rule_select(fstruct IN FND_FLEX_SERVER1.FlexStructId,
129: v_date IN DATE,
130: bad_rule OUT nocopy VARCHAR2) RETURN NUMBER;
131:
132: FUNCTION x_xvc_check_cache(fstruct IN FND_FLEX_SERVER1.FlexStructId,
133: v_date IN DATE,
134: p_cat_segs IN VARCHAR2,
135: in_cache OUT nocopy BOOLEAN,
136: is_violated OUT nocopy BOOLEAN,

Line 139: FUNCTION x_xvc_update_cache(fstruct IN FND_FLEX_SERVER1.FlexStructId,

135: in_cache OUT nocopy BOOLEAN,
136: is_violated OUT nocopy BOOLEAN,
137: rule_name OUT nocopy VARCHAR2) RETURN BOOLEAN;
138:
139: FUNCTION x_xvc_update_cache(fstruct IN FND_FLEX_SERVER1.FlexStructId,
140: v_date IN DATE,
141: p_cat_segs IN VARCHAR2,
142: is_violated IN BOOLEAN,
143: rule_name IN VARCHAR2) RETURN BOOLEAN;

Line 157: flex_struct OUT nocopy FND_FLEX_SERVER1.FlexStructId,

153: FUNCTION get_keystruct(appl_sname IN VARCHAR2,
154: flex_code IN VARCHAR2,
155: select_comb_from_view IN VARCHAR2,
156: flex_num IN NUMBER,
157: flex_struct OUT nocopy FND_FLEX_SERVER1.FlexStructId,
158: struct_info OUT nocopy FND_FLEX_SERVER1.FlexStructInfo,
159: cctbl_info OUT nocopy FND_FLEX_SERVER1.CombTblInfo)
160: RETURN BOOLEAN
161: IS

Line 158: struct_info OUT nocopy FND_FLEX_SERVER1.FlexStructInfo,

154: flex_code IN VARCHAR2,
155: select_comb_from_view IN VARCHAR2,
156: flex_num IN NUMBER,
157: flex_struct OUT nocopy FND_FLEX_SERVER1.FlexStructId,
158: struct_info OUT nocopy FND_FLEX_SERVER1.FlexStructInfo,
159: cctbl_info OUT nocopy FND_FLEX_SERVER1.CombTblInfo)
160: RETURN BOOLEAN
161: IS
162: BEGIN

Line 159: cctbl_info OUT nocopy FND_FLEX_SERVER1.CombTblInfo)

155: select_comb_from_view IN VARCHAR2,
156: flex_num IN NUMBER,
157: flex_struct OUT nocopy FND_FLEX_SERVER1.FlexStructId,
158: struct_info OUT nocopy FND_FLEX_SERVER1.FlexStructInfo,
159: cctbl_info OUT nocopy FND_FLEX_SERVER1.CombTblInfo)
160: RETURN BOOLEAN
161: IS
162: BEGIN
163: -- Get all required info about the desired flexfield structure.

Line 272: dfinfo OUT nocopy FND_FLEX_SERVER1.DescFlexInfo)

268: /* ----------------------------------------------------------------------- */
269:
270: FUNCTION get_descstruct(flex_app_sname IN VARCHAR2,
271: desc_flex_name IN VARCHAR2,
272: dfinfo OUT nocopy FND_FLEX_SERVER1.DescFlexInfo)
273: RETURN BOOLEAN
274: IS
275: BEGIN
276: g_cache_key := flex_app_sname || '.' || desc_flex_name;

Line 358: FUNCTION get_struct_cols(fstruct IN FND_FLEX_SERVER1.FlexStructId,

354: /* maximum sizes for all enabled segments of the given key or */
355: /* descriptive flexfield structure. Error if no key segments found. */
356: /* Returns FALSE and sets error message on error. */
357: /* ----------------------------------------------------------------------- */
358: FUNCTION get_struct_cols(fstruct IN FND_FLEX_SERVER1.FlexStructId,
359: table_apid IN NUMBER,
360: table_id IN NUMBER,
361: n_columns OUT nocopy NUMBER,
362: cols OUT nocopy FND_FLEX_SERVER1.TabColArray,

Line 362: cols OUT nocopy FND_FLEX_SERVER1.TabColArray,

358: FUNCTION get_struct_cols(fstruct IN FND_FLEX_SERVER1.FlexStructId,
359: table_apid IN NUMBER,
360: table_id IN NUMBER,
361: n_columns OUT nocopy NUMBER,
362: cols OUT nocopy FND_FLEX_SERVER1.TabColArray,
363: coltypes OUT nocopy FND_FLEX_SERVER1.CharArray,
364: seg_formats OUT nocopy FND_FLEX_SERVER1.SegFormats)
365: RETURN BOOLEAN
366: IS

Line 363: coltypes OUT nocopy FND_FLEX_SERVER1.CharArray,

359: table_apid IN NUMBER,
360: table_id IN NUMBER,
361: n_columns OUT nocopy NUMBER,
362: cols OUT nocopy FND_FLEX_SERVER1.TabColArray,
363: coltypes OUT nocopy FND_FLEX_SERVER1.CharArray,
364: seg_formats OUT nocopy FND_FLEX_SERVER1.SegFormats)
365: RETURN BOOLEAN
366: IS
367: CURSOR kff_column_cursor(p_application_id IN NUMBER,

Line 364: seg_formats OUT nocopy FND_FLEX_SERVER1.SegFormats)

360: table_id IN NUMBER,
361: n_columns OUT nocopy NUMBER,
362: cols OUT nocopy FND_FLEX_SERVER1.TabColArray,
363: coltypes OUT nocopy FND_FLEX_SERVER1.CharArray,
364: seg_formats OUT nocopy FND_FLEX_SERVER1.SegFormats)
365: RETURN BOOLEAN
366: IS
367: CURSOR kff_column_cursor(p_application_id IN NUMBER,
368: p_id_flex_code IN VARCHAR2,

Line 528: FUNCTION get_all_segquals(fstruct IN FND_FLEX_SERVER1.FlexStructId,

524: /* qualifiers associated with a given flexfield. */
525: /* No qualifiers associated with descriptive flexfields. */
526: /* Returns TRUE on success or FALSE and sets error message if error. */
527: /* ----------------------------------------------------------------------- */
528: FUNCTION get_all_segquals(fstruct IN FND_FLEX_SERVER1.FlexStructId,
529: seg_quals OUT nocopy FND_FLEX_SERVER1.Qualifiers)
530: RETURN BOOLEAN IS
531:
532: i NUMBER;

Line 529: seg_quals OUT nocopy FND_FLEX_SERVER1.Qualifiers)

525: /* No qualifiers associated with descriptive flexfields. */
526: /* Returns TRUE on success or FALSE and sets error message if error. */
527: /* ----------------------------------------------------------------------- */
528: FUNCTION get_all_segquals(fstruct IN FND_FLEX_SERVER1.FlexStructId,
529: seg_quals OUT nocopy FND_FLEX_SERVER1.Qualifiers)
530: RETURN BOOLEAN IS
531:
532: i NUMBER;
533:

Line 534: CURSOR all_qual_cursor(keystruct in FND_FLEX_SERVER1.FlexStructId) IS

530: RETURN BOOLEAN IS
531:
532: i NUMBER;
533:
534: CURSOR all_qual_cursor(keystruct in FND_FLEX_SERVER1.FlexStructId) IS
535: SELECT segment_attribute_type fq_name, value_attribute_type sq_name,
536: application_column_name drv_colname, default_value dflt_val
537: FROM fnd_value_attribute_types
538: WHERE application_id = keystruct.application_id

Line 607: FUNCTION get_qualsegs(fstruct IN FND_FLEX_SERVER1.FlexStructId,

603: /* For key flexfields it's an error if no enabled segments found. */
604: /* Returns FALSE and sets error message if error, or returns TRUE of OK */
605: /* ------------------------------------------------------------------------- */
606:
607: FUNCTION get_qualsegs(fstruct IN FND_FLEX_SERVER1.FlexStructId,
608: nsegs OUT nocopy NUMBER,
609: segdisp OUT nocopy FND_FLEX_SERVER1.CharArray,
610: segrqd OUT nocopy FND_FLEX_SERVER1.CharArray,
611: fqtab OUT nocopy FND_FLEX_SERVER1.FlexQualTable)

Line 609: segdisp OUT nocopy FND_FLEX_SERVER1.CharArray,

605: /* ------------------------------------------------------------------------- */
606:
607: FUNCTION get_qualsegs(fstruct IN FND_FLEX_SERVER1.FlexStructId,
608: nsegs OUT nocopy NUMBER,
609: segdisp OUT nocopy FND_FLEX_SERVER1.CharArray,
610: segrqd OUT nocopy FND_FLEX_SERVER1.CharArray,
611: fqtab OUT nocopy FND_FLEX_SERVER1.FlexQualTable)
612: RETURN BOOLEAN IS
613:

Line 610: segrqd OUT nocopy FND_FLEX_SERVER1.CharArray,

606:
607: FUNCTION get_qualsegs(fstruct IN FND_FLEX_SERVER1.FlexStructId,
608: nsegs OUT nocopy NUMBER,
609: segdisp OUT nocopy FND_FLEX_SERVER1.CharArray,
610: segrqd OUT nocopy FND_FLEX_SERVER1.CharArray,
611: fqtab OUT nocopy FND_FLEX_SERVER1.FlexQualTable)
612: RETURN BOOLEAN IS
613:
614: n_segs NUMBER;

Line 611: fqtab OUT nocopy FND_FLEX_SERVER1.FlexQualTable)

607: FUNCTION get_qualsegs(fstruct IN FND_FLEX_SERVER1.FlexStructId,
608: nsegs OUT nocopy NUMBER,
609: segdisp OUT nocopy FND_FLEX_SERVER1.CharArray,
610: segrqd OUT nocopy FND_FLEX_SERVER1.CharArray,
611: fqtab OUT nocopy FND_FLEX_SERVER1.FlexQualTable)
612: RETURN BOOLEAN IS
613:
614: n_segs NUMBER;
615: n_fqual NUMBER;

Line 616: segnums FND_FLEX_SERVER1.NumberArray;

612: RETURN BOOLEAN IS
613:
614: n_segs NUMBER;
615: n_fqual NUMBER;
616: segnums FND_FLEX_SERVER1.NumberArray;
617:
618: CURSOR KeyFQCursor(kff_struct IN FND_FLEX_SERVER1.FlexStructId) IS
619: SELECT s.segment_num segnum,
620: s.display_flag displayed,

Line 618: CURSOR KeyFQCursor(kff_struct IN FND_FLEX_SERVER1.FlexStructId) IS

614: n_segs NUMBER;
615: n_fqual NUMBER;
616: segnums FND_FLEX_SERVER1.NumberArray;
617:
618: CURSOR KeyFQCursor(kff_struct IN FND_FLEX_SERVER1.FlexStructId) IS
619: SELECT s.segment_num segnum,
620: s.display_flag displayed,
621: s.required_flag required,
622: sav.segment_attribute_type fqname

Line 635: CURSOR DescFQCursor(dff_struct IN FND_FLEX_SERVER1.FlexStructId) IS

631: AND sav.id_flex_num(+) = kff_struct.id_flex_num
632: AND sav.attribute_value(+) = 'Y'
633: ORDER BY s.segment_num;
634:
635: CURSOR DescFQCursor(dff_struct IN FND_FLEX_SERVER1.FlexStructId) IS
636: SELECT column_seq_num segnum, display_flag displayed,
637: required_flag required
638: FROM fnd_descr_flex_column_usages
639: WHERE application_id = dff_struct.application_id

Line 650: IF (fnd_flex_server1.g_debug_level > 0) THEN

646: dflexqual descfqcursor%ROWTYPE;
647:
648: i NUMBER;
649: BEGIN
650: IF (fnd_flex_server1.g_debug_level > 0) THEN
651: fnd_flex_server1.add_debug('BEGIN SV2.get_qualsegs()');
652: END IF;
653:
654: -- Outer join on segments and flexfield qualifiers tables.

Line 651: fnd_flex_server1.add_debug('BEGIN SV2.get_qualsegs()');

647:
648: i NUMBER;
649: BEGIN
650: IF (fnd_flex_server1.g_debug_level > 0) THEN
651: fnd_flex_server1.add_debug('BEGIN SV2.get_qualsegs()');
652: END IF;
653:
654: -- Outer join on segments and flexfield qualifiers tables.
655: -- Fill segdisp, segrqd with the values only for the distict segments

Line 660: IF (fnd_flex_server1.g_debug_level > 0) THEN

656: -- which are separated by their segment numbers. n_segs is the number
657: -- of distinct segments. seg_indexes is order of distinct segments.
658: -- FlexQualTable maps qualifiers to seg_indexes.
659:
660: IF (fnd_flex_server1.g_debug_level > 0) THEN
661: FND_FLEX_SERVER1.add_debug('Segments+quals: ');
662: END IF;
663:
664: n_segs := 0;

Line 661: FND_FLEX_SERVER1.add_debug('Segments+quals: ');

657: -- of distinct segments. seg_indexes is order of distinct segments.
658: -- FlexQualTable maps qualifiers to seg_indexes.
659:
660: IF (fnd_flex_server1.g_debug_level > 0) THEN
661: FND_FLEX_SERVER1.add_debug('Segments+quals: ');
662: END IF;
663:
664: n_segs := 0;
665: n_fqual := 0;

Line 719: IF (fnd_flex_server1.g_debug_level > 0) THEN

715: segdisp(n_segs) := kflexqual.displayed;
716: segrqd(n_segs) := kflexqual.required;
717: end if;
718: fqtab.seg_indexes(n_fqual) := n_segs;
719: IF (fnd_flex_server1.g_debug_level > 0) THEN
720: FND_FLEX_SERVER1.add_debug('(' || to_char(kflexqual.segnum) || ', ' ||
721: kflexqual.fqname || ') ');
722: END IF;
723: end loop;

Line 720: FND_FLEX_SERVER1.add_debug('(' || to_char(kflexqual.segnum) || ', ' ||

716: segrqd(n_segs) := kflexqual.required;
717: end if;
718: fqtab.seg_indexes(n_fqual) := n_segs;
719: IF (fnd_flex_server1.g_debug_level > 0) THEN
720: FND_FLEX_SERVER1.add_debug('(' || to_char(kflexqual.segnum) || ', ' ||
721: kflexqual.fqname || ') ');
722: END IF;
723: end loop;
724: -- Key flexfield must have enabled segments

Line 781: IF (fnd_flex_server1.g_debug_level > 0) THEN

777: segdisp(n_segs) := dflexqual.displayed;
778: segrqd(n_segs) := dflexqual.required;
779: fqtab.fq_names(n_segs) := NULL;
780: fqtab.seg_indexes(n_segs) := n_segs;
781: IF (fnd_flex_server1.g_debug_level > 0) THEN
782: FND_FLEX_SERVER1.add_debug('(' || to_char(dflexqual.segnum) || ') ');
783: END IF;
784: end loop;
785: n_fqual := n_segs;

Line 782: FND_FLEX_SERVER1.add_debug('(' || to_char(dflexqual.segnum) || ') ');

778: segrqd(n_segs) := dflexqual.required;
779: fqtab.fq_names(n_segs) := NULL;
780: fqtab.seg_indexes(n_segs) := n_segs;
781: IF (fnd_flex_server1.g_debug_level > 0) THEN
782: FND_FLEX_SERVER1.add_debug('(' || to_char(dflexqual.segnum) || ') ');
783: END IF;
784: end loop;
785: n_fqual := n_segs;
786: end if;

Line 790: IF (fnd_flex_server1.g_debug_level > 0) THEN

786: end if;
787:
788: fqtab.nentries := n_fqual;
789: nsegs := n_segs;
790: IF (fnd_flex_server1.g_debug_level > 0) THEN
791: fnd_flex_server1.add_debug('END SV2.get_qualsegs()');
792: END IF;
793:
794: return(TRUE);

Line 791: fnd_flex_server1.add_debug('END SV2.get_qualsegs()');

787:
788: fqtab.nentries := n_fqual;
789: nsegs := n_segs;
790: IF (fnd_flex_server1.g_debug_level > 0) THEN
791: fnd_flex_server1.add_debug('END SV2.get_qualsegs()');
792: END IF;
793:
794: return(TRUE);
795:

Line 798: IF (fnd_flex_server1.g_debug_level > 0) THEN

794: return(TRUE);
795:
796: EXCEPTION
797: WHEN OTHERS THEN
798: IF (fnd_flex_server1.g_debug_level > 0) THEN
799: fnd_flex_server1.add_debug('EXCEPTION others SV2.get_qualsegs()');
800: END IF;
801: FND_MESSAGE.set_name('FND', 'FLEX-SSV EXCEPTION');
802: FND_MESSAGE.set_token('MSG','SV2.get_qualsegs() exception: ' || SQLERRM);

Line 799: fnd_flex_server1.add_debug('EXCEPTION others SV2.get_qualsegs()');

795:
796: EXCEPTION
797: WHEN OTHERS THEN
798: IF (fnd_flex_server1.g_debug_level > 0) THEN
799: fnd_flex_server1.add_debug('EXCEPTION others SV2.get_qualsegs()');
800: END IF;
801: FND_MESSAGE.set_name('FND', 'FLEX-SSV EXCEPTION');
802: FND_MESSAGE.set_token('MSG','SV2.get_qualsegs() exception: ' || SQLERRM);
803: return(FALSE);

Line 817: segs IN FND_FLEX_SERVER1.ValueArray,

813: /* Segment array is 1-based containing entries for 1 <= i <= nsegs */
814: /* ----------------------------------------------------------------------- */
815:
816: FUNCTION cross_validate(nsegs IN NUMBER,
817: segs IN FND_FLEX_SERVER1.ValueArray,
818: segfmt IN FND_FLEX_SERVER1.SegFormats,
819: vdt IN DATE,
820: fstruct IN FND_FLEX_SERVER1.FlexStructId,
821: errcol OUT nocopy VARCHAR2)

Line 818: segfmt IN FND_FLEX_SERVER1.SegFormats,

814: /* ----------------------------------------------------------------------- */
815:
816: FUNCTION cross_validate(nsegs IN NUMBER,
817: segs IN FND_FLEX_SERVER1.ValueArray,
818: segfmt IN FND_FLEX_SERVER1.SegFormats,
819: vdt IN DATE,
820: fstruct IN FND_FLEX_SERVER1.FlexStructId,
821: errcol OUT nocopy VARCHAR2)
822: RETURN NUMBER

Line 820: fstruct IN FND_FLEX_SERVER1.FlexStructId,

816: FUNCTION cross_validate(nsegs IN NUMBER,
817: segs IN FND_FLEX_SERVER1.ValueArray,
818: segfmt IN FND_FLEX_SERVER1.SegFormats,
819: vdt IN DATE,
820: fstruct IN FND_FLEX_SERVER1.FlexStructId,
821: errcol OUT nocopy VARCHAR2)
822: RETURN NUMBER
823: IS
824: isviolated BOOLEAN;

Line 828: segments FND_FLEX_SERVER1.StringArray;

824: isviolated BOOLEAN;
825: incache BOOLEAN;
826: rulemsg VARCHAR2(240);
827: rulename VARCHAR2(15);
828: segments FND_FLEX_SERVER1.StringArray;
829: l_cat_segs VARCHAR2(32000);
830: BEGIN
831:
832: -- Convert value array to string array for subsequent processing.

Line 840: l_cat_segs := FND_FLEX_SERVER1.from_stringarray2(nsegs, segments,

836: end loop;
837:
838: -- Concatenate segments
839: --
840: l_cat_segs := FND_FLEX_SERVER1.from_stringarray2(nsegs, segments,
841: CACHE_DELIMITER);
842:
843: -- Next see if cross-validation result in cache. If not, check the
844: -- cross validation rules and cache the result. Implement our own

Line 850: return(FND_FLEX_SERVER1.VV_ERROR);

846: --
847: if(x_xvc_check_cache(fstruct, vdt,
848: l_cat_segs,
849: incache, isviolated, rulename) = FALSE) then
850: return(FND_FLEX_SERVER1.VV_ERROR);
851: end if;
852:
853: IF (NOT incache) then
854:

Line 866: return(FND_FLEX_SERVER1.VV_ERROR);

862: --
863: if(x_xvc_update_cache(fstruct, vdt,
864: l_cat_segs,
865: isviolated, rulename) = FALSE) then
866: return(FND_FLEX_SERVER1.VV_ERROR);
867: end if;
868:
869: end if;
870:

Line 882: return(FND_FLEX_SERVER1.VV_CROSSVAL);

878: and id_flex_num = fstruct.id_flex_num
879: and flex_validation_rule_name = rulename;
880: FND_MESSAGE.set_name('FND', 'FLEX-EXCLUDED BY XVAL RULE');
881: FND_MESSAGE.set_token('MESSAGE', rulemsg);
882: return(FND_FLEX_SERVER1.VV_CROSSVAL);
883: end if;
884: return(FND_FLEX_SERVER1.VV_ERROR);
885: end if;
886: return(FND_FLEX_SERVER1.VV_VALID);

Line 884: return(FND_FLEX_SERVER1.VV_ERROR);

880: FND_MESSAGE.set_name('FND', 'FLEX-EXCLUDED BY XVAL RULE');
881: FND_MESSAGE.set_token('MESSAGE', rulemsg);
882: return(FND_FLEX_SERVER1.VV_CROSSVAL);
883: end if;
884: return(FND_FLEX_SERVER1.VV_ERROR);
885: end if;
886: return(FND_FLEX_SERVER1.VV_VALID);
887:
888: EXCEPTION

Line 886: return(FND_FLEX_SERVER1.VV_VALID);

882: return(FND_FLEX_SERVER1.VV_CROSSVAL);
883: end if;
884: return(FND_FLEX_SERVER1.VV_ERROR);
885: end if;
886: return(FND_FLEX_SERVER1.VV_VALID);
887:
888: EXCEPTION
889: WHEN NO_DATA_FOUND then
890: FND_MESSAGE.set_name('FND', 'FLEX-XVAL RULE MSG NOT FOUND');

Line 892: return(FND_FLEX_SERVER1.VV_ERROR);

888: EXCEPTION
889: WHEN NO_DATA_FOUND then
890: FND_MESSAGE.set_name('FND', 'FLEX-XVAL RULE MSG NOT FOUND');
891: FND_MESSAGE.set_token('RULENAME', rulename);
892: return(FND_FLEX_SERVER1.VV_ERROR);
893: WHEN TOO_MANY_ROWS then
894: FND_MESSAGE.set_name('FND', 'FLEX-XVAL RULE MSG NOT UNIQUE');
895: FND_MESSAGE.set_token('RULENAME', rulename);
896: return(FND_FLEX_SERVER1.VV_ERROR);

Line 896: return(FND_FLEX_SERVER1.VV_ERROR);

892: return(FND_FLEX_SERVER1.VV_ERROR);
893: WHEN TOO_MANY_ROWS then
894: FND_MESSAGE.set_name('FND', 'FLEX-XVAL RULE MSG NOT UNIQUE');
895: FND_MESSAGE.set_token('RULENAME', rulename);
896: return(FND_FLEX_SERVER1.VV_ERROR);
897: WHEN OTHERS then
898: FND_MESSAGE.set_name('FND', 'FLEX-SSV EXCEPTION');
899: FND_MESSAGE.set_token('MSG','SV2.cross_validate() exception: '||SQLERRM);
900: return(FND_FLEX_SERVER1.VV_ERROR);

Line 900: return(FND_FLEX_SERVER1.VV_ERROR);

896: return(FND_FLEX_SERVER1.VV_ERROR);
897: WHEN OTHERS then
898: FND_MESSAGE.set_name('FND', 'FLEX-SSV EXCEPTION');
899: FND_MESSAGE.set_token('MSG','SV2.cross_validate() exception: '||SQLERRM);
900: return(FND_FLEX_SERVER1.VV_ERROR);
901: END cross_validate;
902:
903: /* ----------------------------------------------------------------------- */
904: /* Determines if any cross-validation include (inex = 'I') or */

Line 909: segs IN FND_FLEX_SERVER1.StringArray,

905: /* exclude (inex = 'E') rule is violated. Returns name of first */
906: /* violated rule and TRUE if so, otherwise returns FALSE. */
907: /* ----------------------------------------------------------------------- */
908: FUNCTION cv_rule_violated(nsegs IN NUMBER,
909: segs IN FND_FLEX_SERVER1.StringArray,
910: segfmt IN FND_FLEX_SERVER1.SegFormats,
911: fstruct IN FND_FLEX_SERVER1.FlexStructId,
912: inex IN VARCHAR2,
913: v_date IN DATE,

Line 910: segfmt IN FND_FLEX_SERVER1.SegFormats,

906: /* violated rule and TRUE if so, otherwise returns FALSE. */
907: /* ----------------------------------------------------------------------- */
908: FUNCTION cv_rule_violated(nsegs IN NUMBER,
909: segs IN FND_FLEX_SERVER1.StringArray,
910: segfmt IN FND_FLEX_SERVER1.SegFormats,
911: fstruct IN FND_FLEX_SERVER1.FlexStructId,
912: inex IN VARCHAR2,
913: v_date IN DATE,
914: rule_name OUT nocopy VARCHAR2) RETURN BOOLEAN

Line 911: fstruct IN FND_FLEX_SERVER1.FlexStructId,

907: /* ----------------------------------------------------------------------- */
908: FUNCTION cv_rule_violated(nsegs IN NUMBER,
909: segs IN FND_FLEX_SERVER1.StringArray,
910: segfmt IN FND_FLEX_SERVER1.SegFormats,
911: fstruct IN FND_FLEX_SERVER1.FlexStructId,
912: inex IN VARCHAR2,
913: v_date IN DATE,
914: rule_name OUT nocopy VARCHAR2) RETURN BOOLEAN
915: IS

Line 961: fnd_flex_server1.x_inrange_clause(segs(i), datatype,locol, hicol);

957: for i in reverse 1..nsegs loop
958: datatype := segfmt.vs_format(i);
959: locol := 'L.SEGMENT' || to_char(i) || '_LOW';
960: hicol := 'L.SEGMENT' || to_char(i) || '_HIGH';
961: fnd_flex_server1.x_inrange_clause(segs(i), datatype,locol, hicol);
962: end loop;
963:
964: fnd_dsql.add_text(cvrule_clause_end);
965:

Line 1002: FUNCTION x_cv_rule_select(fstruct IN FND_FLEX_SERVER1.FlexStructId,

998: /* Returns 1 and first violated rule name if any rule violated. */
999: /* Returns 0 if no violated rules, or < 0 and sets message if error. */
1000: /* Returns 0 for descritive flexfields because they have no cv rules. */
1001: /* ----------------------------------------------------------------------- */
1002: FUNCTION x_cv_rule_select(fstruct IN FND_FLEX_SERVER1.FlexStructId,
1003: v_date IN DATE,
1004: bad_rule OUT nocopy VARCHAR2) RETURN NUMBER IS
1005:
1006: num_returned NUMBER;

Line 1021: FND_FLEX_SERVER1.add_sql_string(fnd_dsql.get_text(p_with_debug => TRUE));

1017: end if;
1018:
1019: -- Save the SQL string in the debug string
1020: --
1021: FND_FLEX_SERVER1.add_sql_string(fnd_dsql.get_text(p_with_debug => TRUE));
1022:
1023: cursornum := dbms_sql.open_cursor;
1024: fnd_dsql.set_cursor(cursornum);
1025:

Line 1038: IF (fnd_flex_server1.g_debug_level > 0) THEN

1034: dbms_sql.define_column(cursornum, 1, selected_rule, 15);
1035: num_returned := dbms_sql.execute_and_fetch(cursornum, FALSE);
1036: if(num_returned = 1) then
1037: dbms_sql.column_value(cursornum, 1, selected_rule);
1038: IF (fnd_flex_server1.g_debug_level > 0) THEN
1039: FND_FLEX_SERVER1.add_debug('(DSQL returned ' || selected_rule || ')');
1040: END IF;
1041: bad_rule := selected_rule;
1042: else

Line 1039: FND_FLEX_SERVER1.add_debug('(DSQL returned ' || selected_rule || ')');

1035: num_returned := dbms_sql.execute_and_fetch(cursornum, FALSE);
1036: if(num_returned = 1) then
1037: dbms_sql.column_value(cursornum, 1, selected_rule);
1038: IF (fnd_flex_server1.g_debug_level > 0) THEN
1039: FND_FLEX_SERVER1.add_debug('(DSQL returned ' || selected_rule || ')');
1040: END IF;
1041: bad_rule := selected_rule;
1042: else
1043: num_returned := 0;

Line 1044: IF (fnd_flex_server1.g_debug_level > 0) THEN

1040: END IF;
1041: bad_rule := selected_rule;
1042: else
1043: num_returned := 0;
1044: IF (fnd_flex_server1.g_debug_level > 0) THEN
1045: FND_FLEX_SERVER1.add_debug('(DSQL returned: NULL)');
1046: END IF;
1047: end if;
1048: dbms_sql.close_cursor(cursornum);

Line 1045: FND_FLEX_SERVER1.add_debug('(DSQL returned: NULL)');

1041: bad_rule := selected_rule;
1042: else
1043: num_returned := 0;
1044: IF (fnd_flex_server1.g_debug_level > 0) THEN
1045: FND_FLEX_SERVER1.add_debug('(DSQL returned: NULL)');
1046: END IF;
1047: end if;
1048: dbms_sql.close_cursor(cursornum);
1049: return(num_returned);

Line 1073: FUNCTION x_xvc_check_cache(fstruct IN FND_FLEX_SERVER1.FlexStructId,

1069: /* Cached is limited in size. */
1070: /* Returns in_cache = TRUE and is_violated = FALSE for descriptive */
1071: /* flexfields since there are no cv rules for descriptive flexfields. */
1072: /* ----------------------------------------------------------------------- */
1073: FUNCTION x_xvc_check_cache(fstruct IN FND_FLEX_SERVER1.FlexStructId,
1074: v_date IN DATE,
1075: p_cat_segs IN VARCHAR2,
1076: in_cache OUT nocopy BOOLEAN,
1077: is_violated OUT nocopy BOOLEAN,

Line 1083: IF (fnd_flex_server1.g_debug_level > 0) THEN

1079: RETURN BOOLEAN
1080: IS
1081: l_v_day DATE;
1082: BEGIN
1083: IF (fnd_flex_server1.g_debug_level > 0) THEN
1084: fnd_flex_server1.add_debug('BEGIN SV2.x_xvc_check_cache()');
1085: END IF;
1086:
1087: in_cache := FALSE;

Line 1084: fnd_flex_server1.add_debug('BEGIN SV2.x_xvc_check_cache()');

1080: IS
1081: l_v_day DATE;
1082: BEGIN
1083: IF (fnd_flex_server1.g_debug_level > 0) THEN
1084: fnd_flex_server1.add_debug('BEGIN SV2.x_xvc_check_cache()');
1085: END IF;
1086:
1087: in_cache := FALSE;
1088:

Line 1138: FUNCTION x_xvc_update_cache(fstruct IN FND_FLEX_SERVER1.FlexStructId,

1134: /* ----------------------------------------------------------------------- */
1135: /* Saves the results of validating a combination to cache. */
1136: /* Returns TRUE on success or FALSE and sets error message if error. */
1137: /* ----------------------------------------------------------------------- */
1138: FUNCTION x_xvc_update_cache(fstruct IN FND_FLEX_SERVER1.FlexStructId,
1139: v_date IN DATE,
1140: p_cat_segs IN VARCHAR2,
1141: is_violated IN BOOLEAN,
1142: rule_name IN VARCHAR2)

Line 1148: IF (fnd_flex_server1.g_debug_level > 0) THEN

1144: IS
1145: l_v_day DATE;
1146: l_in_cache BOOLEAN;
1147: BEGIN
1148: IF (fnd_flex_server1.g_debug_level > 0) THEN
1149: fnd_flex_server1.add_debug('BEGIN SV2.x_xvc_update_cache()');
1150: END IF;
1151:
1152: -- No cv rules for descriptive flexfields.

Line 1149: fnd_flex_server1.add_debug('BEGIN SV2.x_xvc_update_cache()');

1145: l_v_day DATE;
1146: l_in_cache BOOLEAN;
1147: BEGIN
1148: IF (fnd_flex_server1.g_debug_level > 0) THEN
1149: fnd_flex_server1.add_debug('BEGIN SV2.x_xvc_update_cache()');
1150: END IF;
1151:
1152: -- No cv rules for descriptive flexfields.
1153: --

Line 1201: IF (fnd_flex_server1.g_debug_level > 0) THEN

1197: xvc_cache_storage,
1198: g_cache_key,
1199: g_cache_value);
1200:
1201: IF (fnd_flex_server1.g_debug_level > 0) THEN
1202: FND_FLEX_SERVER1.add_debug('Added to xvc_cache key : ' ||
1203: REPLACE(g_cache_key, CACHE_DELIMITER, '.'));
1204:
1205: fnd_flex_server1.add_debug('is_violated :');

Line 1202: FND_FLEX_SERVER1.add_debug('Added to xvc_cache key : ' ||

1198: g_cache_key,
1199: g_cache_value);
1200:
1201: IF (fnd_flex_server1.g_debug_level > 0) THEN
1202: FND_FLEX_SERVER1.add_debug('Added to xvc_cache key : ' ||
1203: REPLACE(g_cache_key, CACHE_DELIMITER, '.'));
1204:
1205: fnd_flex_server1.add_debug('is_violated :');
1206: if(is_violated) then

Line 1205: fnd_flex_server1.add_debug('is_violated :');

1201: IF (fnd_flex_server1.g_debug_level > 0) THEN
1202: FND_FLEX_SERVER1.add_debug('Added to xvc_cache key : ' ||
1203: REPLACE(g_cache_key, CACHE_DELIMITER, '.'));
1204:
1205: fnd_flex_server1.add_debug('is_violated :');
1206: if(is_violated) then
1207: FND_FLEX_SERVER1.add_debug('Y ');
1208: else
1209: FND_FLEX_SERVER1.add_debug('N ');

Line 1207: FND_FLEX_SERVER1.add_debug('Y ');

1203: REPLACE(g_cache_key, CACHE_DELIMITER, '.'));
1204:
1205: fnd_flex_server1.add_debug('is_violated :');
1206: if(is_violated) then
1207: FND_FLEX_SERVER1.add_debug('Y ');
1208: else
1209: FND_FLEX_SERVER1.add_debug('N ');
1210: end if;
1211: FND_FLEX_SERVER1.add_debug('rule_name :' || rule_name);

Line 1209: FND_FLEX_SERVER1.add_debug('N ');

1205: fnd_flex_server1.add_debug('is_violated :');
1206: if(is_violated) then
1207: FND_FLEX_SERVER1.add_debug('Y ');
1208: else
1209: FND_FLEX_SERVER1.add_debug('N ');
1210: end if;
1211: FND_FLEX_SERVER1.add_debug('rule_name :' || rule_name);
1212: END IF;
1213: return(TRUE);

Line 1211: FND_FLEX_SERVER1.add_debug('rule_name :' || rule_name);

1207: FND_FLEX_SERVER1.add_debug('Y ');
1208: else
1209: FND_FLEX_SERVER1.add_debug('N ');
1210: end if;
1211: FND_FLEX_SERVER1.add_debug('rule_name :' || rule_name);
1212: END IF;
1213: return(TRUE);
1214:
1215: EXCEPTION

Line 1226: FUNCTION x_drop_cached_cv_result(fstruct IN FND_FLEX_SERVER1.FlexStructId,

1222:
1223: /* ----------------------------------------------------------------------- */
1224: /* Deletes the specified combination from the cross-validation cache. */
1225: /* ----------------------------------------------------------------------- */
1226: FUNCTION x_drop_cached_cv_result(fstruct IN FND_FLEX_SERVER1.FlexStructId,
1227: n_segs IN NUMBER,
1228: segs IN FND_FLEX_SERVER1.ValueArray)
1229: RETURN BOOLEAN IS
1230: l_count NUMBER;

Line 1228: segs IN FND_FLEX_SERVER1.ValueArray)

1224: /* Deletes the specified combination from the cross-validation cache. */
1225: /* ----------------------------------------------------------------------- */
1226: FUNCTION x_drop_cached_cv_result(fstruct IN FND_FLEX_SERVER1.FlexStructId,
1227: n_segs IN NUMBER,
1228: segs IN FND_FLEX_SERVER1.ValueArray)
1229: RETURN BOOLEAN IS
1230: l_count NUMBER;
1231: cat_segs VARCHAR2(2000);
1232: segments FND_FLEX_SERVER1.StringArray;

Line 1232: segments FND_FLEX_SERVER1.StringArray;

1228: segs IN FND_FLEX_SERVER1.ValueArray)
1229: RETURN BOOLEAN IS
1230: l_count NUMBER;
1231: cat_segs VARCHAR2(2000);
1232: segments FND_FLEX_SERVER1.StringArray;
1233:
1234: BEGIN
1235: IF (fnd_flex_server1.g_debug_level > 0) THEN
1236: fnd_flex_server1.add_debug('BEGIN SV2.x_drop_cached_cv_result()');

Line 1235: IF (fnd_flex_server1.g_debug_level > 0) THEN

1231: cat_segs VARCHAR2(2000);
1232: segments FND_FLEX_SERVER1.StringArray;
1233:
1234: BEGIN
1235: IF (fnd_flex_server1.g_debug_level > 0) THEN
1236: fnd_flex_server1.add_debug('BEGIN SV2.x_drop_cached_cv_result()');
1237: END IF;
1238:
1239: -- No cv rules for descriptive flexfields.

Line 1236: fnd_flex_server1.add_debug('BEGIN SV2.x_drop_cached_cv_result()');

1232: segments FND_FLEX_SERVER1.StringArray;
1233:
1234: BEGIN
1235: IF (fnd_flex_server1.g_debug_level > 0) THEN
1236: fnd_flex_server1.add_debug('BEGIN SV2.x_drop_cached_cv_result()');
1237: END IF;
1238:
1239: -- No cv rules for descriptive flexfields.
1240: --

Line 1250: cat_segs := FND_FLEX_SERVER1.from_stringarray2(n_segs, segments,

1246: --
1247: for i in 1..n_segs loop
1248: segments(i) := segs(i);
1249: end loop;
1250: cat_segs := FND_FLEX_SERVER1.from_stringarray2(n_segs, segments,
1251: CACHE_DELIMITER);
1252:
1253: g_cache_key := (fstruct.application_id ||
1254: fstruct.id_flex_code ||

Line 1273: IF (fnd_flex_server1.g_debug_level > 0) THEN

1269: fnd_plsql_cache.generic_1to1_remove_key(xvc_cache_controller,
1270: g_cache_key);
1271: END IF;
1272:
1273: IF (fnd_flex_server1.g_debug_level > 0) THEN
1274: FND_FLEX_SERVER1.add_debug('Cleared ' || to_char(l_count) ||
1275: ' cached cv results. ');
1276: END IF;
1277: return(TRUE);

Line 1274: FND_FLEX_SERVER1.add_debug('Cleared ' || to_char(l_count) ||

1270: g_cache_key);
1271: END IF;
1272:
1273: IF (fnd_flex_server1.g_debug_level > 0) THEN
1274: FND_FLEX_SERVER1.add_debug('Cleared ' || to_char(l_count) ||
1275: ' cached cv results. ');
1276: END IF;
1277: return(TRUE);
1278:

Line 1293: IF (fnd_flex_server1.g_debug_level > 0) THEN

1289: /* Clears the cross-validation rule cache altogether. */
1290: /* ----------------------------------------------------------------------- */
1291: PROCEDURE x_clear_cv_cache IS
1292: BEGIN
1293: IF (fnd_flex_server1.g_debug_level > 0) THEN
1294: FND_FLEX_SERVER1.add_debug('Zeroing xvr_comb cache');
1295: END IF;
1296: fnd_plsql_cache.generic_1to1_clear(xvc_cache_controller,
1297: xvc_cache_storage);

Line 1294: FND_FLEX_SERVER1.add_debug('Zeroing xvr_comb cache');

1290: /* ----------------------------------------------------------------------- */
1291: PROCEDURE x_clear_cv_cache IS
1292: BEGIN
1293: IF (fnd_flex_server1.g_debug_level > 0) THEN
1294: FND_FLEX_SERVER1.add_debug('Zeroing xvr_comb cache');
1295: END IF;
1296: fnd_plsql_cache.generic_1to1_clear(xvc_cache_controller,
1297: xvc_cache_storage);
1298: END x_clear_cv_cache;

Line 1315: displayed_segs IN FND_FLEX_SERVER1.DisplayedSegs,

1311:
1312: FUNCTION breakup_catsegs(catsegs IN VARCHAR2,
1313: delim IN VARCHAR2,
1314: vals_not_ids IN BOOLEAN,
1315: displayed_segs IN FND_FLEX_SERVER1.DisplayedSegs,
1316: nsegs_out OUT nocopy NUMBER,
1317: segs_out IN OUT nocopy FND_FLEX_SERVER1.StringArray)
1318: RETURN BOOLEAN IS
1319: cat_nsegs NUMBER;

Line 1317: segs_out IN OUT nocopy FND_FLEX_SERVER1.StringArray)

1313: delim IN VARCHAR2,
1314: vals_not_ids IN BOOLEAN,
1315: displayed_segs IN FND_FLEX_SERVER1.DisplayedSegs,
1316: nsegs_out OUT nocopy NUMBER,
1317: segs_out IN OUT nocopy FND_FLEX_SERVER1.StringArray)
1318: RETURN BOOLEAN IS
1319: cat_nsegs NUMBER;
1320: disp_nsegs NUMBER;
1321: j NUMBER;

Line 1350: cat_nsegs := FND_FLEX_SERVER1.to_stringarray(catsegs, delim, segs_out);

1346: if(disp_nsegs = 1) then
1347: segs_out(1) := catsegs;
1348: cat_nsegs := 1;
1349: else
1350: cat_nsegs := FND_FLEX_SERVER1.to_stringarray(catsegs, delim, segs_out);
1351: end if;
1352:
1353:
1354: /*************************************************************************