1 package body okl_version_pvt_w as
2 /* $Header: OKLEVERB.pls 120.1 2005/07/12 12:50:20 dkagrawa noship $ */
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 function rosetta_g_miss_num_map(n number) return number as
14 a number := fnd_api.g_miss_num;
15 b number := 0-1962.0724;
16 begin
17 if n=a then return b; end if;
18 if n=b then return a; end if;
19 return n;
20 end;
21
22 procedure version_contract(p_api_version NUMBER
23 , p_init_msg_list VARCHAR2
24 , x_return_status out nocopy VARCHAR2
25 , x_msg_count out nocopy NUMBER
26 , x_msg_data out nocopy VARCHAR2
27 , p6_a0 out nocopy NUMBER
28 , p6_a1 out nocopy NUMBER
29 , p6_a2 out nocopy NUMBER
30 , p6_a3 out nocopy NUMBER
31 , p6_a4 out nocopy NUMBER
32 , p6_a5 out nocopy DATE
33 , p6_a6 out nocopy NUMBER
34 , p6_a7 out nocopy DATE
35 , p6_a8 out nocopy NUMBER
36 , p_commit VARCHAR2
37 , p5_a0 NUMBER := 0-1962.0724
38 , p5_a1 NUMBER := 0-1962.0724
39 , p5_a2 NUMBER := 0-1962.0724
40 , p5_a3 NUMBER := 0-1962.0724
41 , p5_a4 NUMBER := 0-1962.0724
42 , p5_a5 DATE := fnd_api.g_miss_date
43 , p5_a6 NUMBER := 0-1962.0724
44 , p5_a7 DATE := fnd_api.g_miss_date
45 , p5_a8 NUMBER := 0-1962.0724
46 )
47
48 as
49 ddp_cvmv_rec okl_version_pvt.cvmv_rec_type;
50 ddx_cvmv_rec okl_version_pvt.cvmv_rec_type;
51 ddindx binary_integer; indx binary_integer;
52 begin
53
54 -- copy data to the local IN or IN-OUT args, if any
55
56
57
58
59
60 ddp_cvmv_rec.chr_id := rosetta_g_miss_num_map(p5_a0);
61 ddp_cvmv_rec.object_version_number := rosetta_g_miss_num_map(p5_a1);
62 ddp_cvmv_rec.major_version := rosetta_g_miss_num_map(p5_a2);
63 ddp_cvmv_rec.minor_version := rosetta_g_miss_num_map(p5_a3);
64 ddp_cvmv_rec.created_by := rosetta_g_miss_num_map(p5_a4);
65 ddp_cvmv_rec.creation_date := rosetta_g_miss_date_in_map(p5_a5);
66 ddp_cvmv_rec.last_updated_by := rosetta_g_miss_num_map(p5_a6);
67 ddp_cvmv_rec.last_update_date := rosetta_g_miss_date_in_map(p5_a7);
68 ddp_cvmv_rec.last_update_login := rosetta_g_miss_num_map(p5_a8);
69
70
71
72 -- here's the delegated call to the old PL/SQL routine
73 okl_version_pvt.version_contract(p_api_version,
74 p_init_msg_list,
75 x_return_status,
76 x_msg_count,
77 x_msg_data,
78 ddp_cvmv_rec,
79 ddx_cvmv_rec,
80 p_commit);
81
82 -- copy data back from the local variables to OUT or IN-OUT args, if any
83
84
85
86
87
88
89 p6_a0 := rosetta_g_miss_num_map(ddx_cvmv_rec.chr_id);
90 p6_a1 := rosetta_g_miss_num_map(ddx_cvmv_rec.object_version_number);
91 p6_a2 := rosetta_g_miss_num_map(ddx_cvmv_rec.major_version);
92 p6_a3 := rosetta_g_miss_num_map(ddx_cvmv_rec.minor_version);
93 p6_a4 := rosetta_g_miss_num_map(ddx_cvmv_rec.created_by);
94 p6_a5 := ddx_cvmv_rec.creation_date;
95 p6_a6 := rosetta_g_miss_num_map(ddx_cvmv_rec.last_updated_by);
96 p6_a7 := ddx_cvmv_rec.last_update_date;
97 p6_a8 := rosetta_g_miss_num_map(ddx_cvmv_rec.last_update_login);
98
99 end;
100
101 end okl_version_pvt_w;