1 PACKAGE BODY PO_DOCUMENT_UTIL_PVT as
2 -- $Header: PO_DOCUMENT_UTIL_PVT.plb 120.2 2005/09/26 18:54:41 jgoodwin noship $
3
4 --------------------------------------------------------------------------
5 -- Modules for debugging.
6 --------------------------------------------------------------------------
7
8 -- The module base for this package.
9 D_PACKAGE_BASE CONSTANT VARCHAR2(50) :=
10 PO_LOG.get_package_base('PO_DOCUMENT_UTIL_PVT');
11
12 -- The module base for the subprogram.
13 D_synchronize_gt_tables CONSTANT VARCHAR2(100) :=
14 PO_LOG.get_subprogram_base(D_PACKAGE_BASE,'synchronize_gt_tables');
15 D_initialize_gt_table CONSTANT VARCHAR2(100) :=
16 PO_LOG.get_subprogram_base(D_PACKAGE_BASE,'initialize_gt_table');
17
18
19
20
21 PROCEDURE synchronize_gt_tables (
22 p_key IN NUMBER
23 , p_index_num1_vals IN PO_TBL_NUMBER
24 , p_index_num2_vals IN PO_TBL_NUMBER
25 )
26 IS
27 d_mod CONSTANT VARCHAR2(100) := D_synchronize_gt_tables;
28
29 BEGIN
30
31 IF PO_LOG.d_proc THEN
32 PO_LOG.proc_begin(d_mod);
33 END IF;
34
35 -- Remove any values for this gt key
36 DELETE FROM PO_SESSION_GT
37 WHERE key = p_key;
38
39 -- Bulk insert new values
40 FORALL i IN 1 .. p_index_num1_vals.COUNT
41 INSERT INTO PO_SESSION_GT
42 ( key
43 , index_num1
44 , index_num2
45 )
46 VALUES
47 (
48 p_key
49 , p_index_num1_vals(i)
50 , p_index_num2_vals(i)
51 );
52
53 IF PO_LOG.d_proc THEN
54 PO_LOG.proc_end(d_mod);
55 END IF;
56
57 EXCEPTION
58 WHEN OTHERS THEN
59 IF PO_LOG.d_exc THEN
60 PO_LOG.exc(d_mod,0,NULL);
61 END IF;
62 RAISE;
63
64 END synchronize_gt_tables;
65
66 /*==================================================================
67 FUNCTION NAME: initialize_gt_table
68
69 DESCRIPTION: Inserts the values into PO_SESSION_GT at
70 a new key, returning the key.
71
72 PARAMETERS: p_index_num1_vals - the values to be inserted into
73 the GT Table's index_num1 column.
74 p_index_num2_vals - the values to be inserted into
75 the GT Table's index_num2 column.
76 ====================================================================*/
77 FUNCTION initialize_gt_table (
78 p_index_num1_vals IN PO_TBL_NUMBER
79 , p_index_num2_vals IN PO_TBL_NUMBER)
80 RETURN NUMBER
81
82 IS
83 d_mod CONSTANT VARCHAR2(100) := D_initialize_gt_table;
84 l_key NUMBER;
85
86 BEGIN
87
88 IF PO_LOG.d_proc THEN
89 PO_LOG.proc_begin(d_mod, 'l_key', l_key);
90 END IF;
91
92 -- Get the next key for the session
93 l_key := PO_CORE_S.get_session_gt_nextval;
94
95 -- Insert the values into the GT table
96 synchronize_gt_tables(
97 p_key => l_key,
98 p_index_num1_vals => p_index_num1_vals,
99 p_index_num2_vals => p_index_num2_vals);
100
101 IF PO_LOG.d_proc THEN
102 PO_LOG.proc_end(d_mod);
103 END IF;
104
105 RETURN(l_key);
106
107 EXCEPTION
108 WHEN OTHERS THEN
109 IF PO_LOG.d_exc THEN
110 PO_LOG.exc(d_mod,0,NULL);
111 END IF;
112 RAISE;
113
114
115 END initialize_gt_table;
116
117
118
119 END PO_DOCUMENT_UTIL_PVT;