DBA Data[Home] [Help]

PACKAGE BODY: APPS.CN_RULES_DISP_PUB_W

Source


1 package body cn_rules_disp_pub_w as
2   /* $Header: cnwrulb.pls 115.4 2002/11/25 23:51:30 fting ship $ */
3   rosetta_g_mistake_date date := to_date('01/01/+4713', 'MM/DD/SYYYY');
4   rosetta_g_miss_date date := to_date('01/01/-4712', 'MM/DD/SYYYY');
5 
6   -- this is to workaround the JDBC bug regarding IN DATE of value GMiss
7   function rosetta_g_miss_date_in_map(d date) return date as
8   begin
9     if d = rosetta_g_mistake_date then return fnd_api.g_miss_date; end if;
10     return d;
11   end;
12 
13   procedure rosetta_table_copy_in_p1(t out nocopy cn_rules_disp_pub.rls_dsp_tbl_type, a0 JTF_VARCHAR2_TABLE_100
14     , a1 JTF_NUMBER_TABLE
15     , a2 JTF_VARCHAR2_TABLE_100
16     , a3 JTF_VARCHAR2_TABLE_2000
17     ) as
18     ddindx binary_integer; indx binary_integer;
19   begin
20   if a0 is not null and a0.count > 0 then
21       if a0.count > 0 then
22         indx := a0.first;
23         ddindx := 1;
24         while true loop
25           t(ddindx).rule_name := a0(indx);
26           t(ddindx).rule_level := a1(indx);
27           t(ddindx).rule_revenue_class := a2(indx);
28           t(ddindx).rule_expression := a3(indx);
29           ddindx := ddindx+1;
30           if a0.last =indx
31             then exit;
32           end if;
33           indx := a0.next(indx);
34         end loop;
35       end if;
36    end if;
37   end rosetta_table_copy_in_p1;
38   procedure rosetta_table_copy_out_p1(t cn_rules_disp_pub.rls_dsp_tbl_type, a0 out nocopy JTF_VARCHAR2_TABLE_100
39     , a1 out nocopy JTF_NUMBER_TABLE
40     , a2 out nocopy JTF_VARCHAR2_TABLE_100
41     , a3 out nocopy JTF_VARCHAR2_TABLE_2000
42     ) as
43     ddindx binary_integer; indx binary_integer;
44   begin
45   if t is null or t.count = 0 then
46     a0 := JTF_VARCHAR2_TABLE_100();
47     a1 := JTF_NUMBER_TABLE();
48     a2 := JTF_VARCHAR2_TABLE_100();
49     a3 := JTF_VARCHAR2_TABLE_2000();
50   else
51       a0 := JTF_VARCHAR2_TABLE_100();
52       a1 := JTF_NUMBER_TABLE();
53       a2 := JTF_VARCHAR2_TABLE_100();
54       a3 := JTF_VARCHAR2_TABLE_2000();
55       if t.count > 0 then
56         a0.extend(t.count);
57         a1.extend(t.count);
58         a2.extend(t.count);
59         a3.extend(t.count);
60         ddindx := t.first;
61         indx := 1;
62         while true loop
63           a0(indx) := t(ddindx).rule_name;
64           a1(indx) := t(ddindx).rule_level;
65           a2(indx) := t(ddindx).rule_revenue_class;
66           a3(indx) := t(ddindx).rule_expression;
67           indx := indx+1;
68           if t.last =ddindx
69             then exit;
70           end if;
71           ddindx := t.next(ddindx);
72         end loop;
73       end if;
74    end if;
75   end rosetta_table_copy_out_p1;
76 
77   procedure get_rules(p_api_version  NUMBER
78     , p_init_msg_list  VARCHAR2
79     , p_validation_level  VARCHAR2
80     , x_return_status out nocopy  VARCHAR2
81     , x_msg_count out nocopy  NUMBER
82     , x_msg_data out nocopy  VARCHAR2
83     , x_loading_status out nocopy  VARCHAR2
84     , p_ruleset_id  NUMBER
85     , p_parent_id  NUMBER
86     , p_date  date
87     , p_start_record  NUMBER
88     , p_increment_count  NUMBER
89     , p12_a0 out nocopy JTF_VARCHAR2_TABLE_100
90     , p12_a1 out nocopy JTF_NUMBER_TABLE
91     , p12_a2 out nocopy JTF_VARCHAR2_TABLE_100
92     , p12_a3 out nocopy JTF_VARCHAR2_TABLE_2000
93     , x_rules_count out nocopy  NUMBER
94   )
95 
96   as
97     ddp_date date;
98     ddx_rules_display_tbl cn_rules_disp_pub.rls_dsp_tbl_type;
99     ddindx binary_integer; indx binary_integer;
100   begin
101 
102     -- copy data to the local IN or IN-OUT args, if any
103 
104 
105 
106 
107 
108 
109 
110 
111 
112     ddp_date := rosetta_g_miss_date_in_map(p_date);
113 
114 
115 
116 
117 
118     -- here's the delegated call to the old PL/SQL routine
119     cn_rules_disp_pub.get_rules(p_api_version,
120       p_init_msg_list,
121       p_validation_level,
122       x_return_status,
123       x_msg_count,
124       x_msg_data,
125       x_loading_status,
126       p_ruleset_id,
127       p_parent_id,
128       ddp_date,
129       p_start_record,
130       p_increment_count,
131       ddx_rules_display_tbl,
132       x_rules_count);
133 
134     -- copy data back from the local variables to OUT or IN-OUT args, if any
135 
136 
137 
138 
139 
140 
141 
142 
143 
144 
145 
146 
147     cn_rules_disp_pub_w.rosetta_table_copy_out_p1(ddx_rules_display_tbl, p12_a0
148       , p12_a1
149       , p12_a2
150       , p12_a3
151       );
152 
153   end;
154 
155 end cn_rules_disp_pub_w;