DBA Data[Home] [Help]

PACKAGE BODY: APPS.HZ_WORD_ARRAY_PKG

Source


1 PACKAGE BODY HZ_WORD_ARRAY_PKG AS
2 /*$Header: ARHDQWAB.pls 120.1 2005/08/29 13:19:48 rchanamo noship $ */
3 
4 /*************** Globals *****************************/
5 -- VJN created for implementing Associative arrays in DQM Word Replacements
6 
7 PROCEDURE populate_word_arrays(wl_id NUMBER)
8 IS
9 flag varchar2(1) ;
10 BEGIN
11 
12 -- populate word list only if it doesn't exist
13 IF word_list_exists(wl_id)
14 THEN
15     NULL;
16 
17 -- if it doesn't exist do the following
18 -- populate non_delimited flag in flag lookup array
19 -- populate global replacements in global array
20 -- populate conditional replacements by storing -1 as replacement for original word
21 ELSE
22    select nvl(non_delimited_flag,'N') into flag
23    from hz_word_lists
24    where word_list_id = wl_id ;
25 
26    -- Populate flag first
27    word_list_ndl_flag_lookup(wl_id) := flag ;
28 
29    -- Populate word list array with global replacements first
30    FOR indx IN (
31      SELECT original_word, replacement_word
32        FROM HZ_WORD_REPLACEMENTS
33        WHERE word_list_id = wl_id and nvl(condition_id, 0) = 0
34        AND ((HZ_TRANS_PKG.staging_context = 'Y' AND DELETE_FLAG = 'N')
35 		OR (nvl(HZ_TRANS_PKG.staging_context,'N') = 'N' AND STAGED_FLAG = 'Y')
36 	   )
37        )
38    LOOP
39       word_list_global_rep_lookup(wl_id)(indx.original_word) := indx.replacement_word ;
40 
41    END LOOP;
42 
43    -- Populate word list array with conditional replacements second
44    -- Here we just mark the original word as dirty
45 
46    FOR indx IN (
47      SELECT distinct original_word
48        FROM HZ_WORD_REPLACEMENTS
49        WHERE word_list_id = wl_id and condition_id > 0
50        AND ((HZ_TRANS_PKG.staging_context = 'Y' AND DELETE_FLAG = 'N')
51 		OR (nvl(HZ_TRANS_PKG.staging_context,'N') = 'N' AND STAGED_FLAG = 'Y')
52 	   )
53        order by original_word  )
54    LOOP
55         word_list_global_rep_lookup(wl_id)(indx.original_word) := '-1' ;
56    END LOOP ;
57 
58 END IF ;
59 END ;
60 
61 FUNCTION get_global_repl_word(wl_id NUMBER, original_word VARCHAR2)
62 RETURN VARCHAR2
63 IS
64 BEGIN
65     -- Look in global replacement array only
66     IF  word_list_global_rep_lookup(wl_id)(original_word) IS NULL or
67         word_list_global_rep_lookup(wl_id)(original_word) like '%'
68     THEN
69           RETURN word_list_global_rep_lookup(wl_id)(original_word) ;
70     END IF ;
71 
72     -- if there is an exception
73     EXCEPTION WHEN NO_DATA_FOUND
74     THEN
75         RETURN '-2' ;
76 END ;
77 
78 FUNCTION word_list_exists(wl_id NUMBER)
79 RETURN BOOLEAN
80 IS
81 BEGIN
82             -- Look into non delimited flag array only
83             IF  word_list_ndl_flag_lookup(wl_id) in ('Y', 'N')
84             THEN
85                 RETURN TRUE ;
86             END IF ;
87 
88             EXCEPTION WHEN NO_DATA_FOUND
89             THEN
90                 RETURN FALSE ;
91 END ;
92 
93 END;