DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_INTERNAL_TO_EXTERNAL_PUB

Source


1 PACKAGE BODY Okl_Internal_To_External_Pub AS
2 /* $Header: OKLPIEXB.pls 120.7 2006/05/19 21:20:31 fmiao noship $ */
3 
4   PROCEDURE internal_to_external (
5            p_api_version                  IN NUMBER,
6     	   p_init_msg_list                IN VARCHAR2 DEFAULT Okl_Api.G_FALSE,
7     	   x_return_status                OUT NOCOPY VARCHAR2,
8     	   x_msg_count                    OUT NOCOPY NUMBER,
9     	   x_msg_data                     OUT NOCOPY VARCHAR2,
10            p_contract_number  	          IN VARCHAR2,
11   	   p_assigned_process 	          IN VARCHAR2)
12   IS
13 
14   l_api_version NUMBER ;
15   l_init_msg_list VARCHAR2(1) ;
16   l_return_status VARCHAR2(1);
17   l_msg_count NUMBER ;
18   l_msg_data VARCHAR2(2000);
19 
20   BEGIN
21 
22   SAVEPOINT cons_bill_pub;
23 
24    	  Okl_Internal_To_External.INTERNAL_TO_EXTERNAL(
25            p_api_version     => p_api_version,
26     	   p_init_msg_list   => p_init_msg_list,
27     	   x_return_status   => x_return_status,
28     	   x_msg_count       => x_msg_count,
29     	   x_msg_data        => x_msg_data,
30            p_commit          => FND_API.G_TRUE,
31 	   --fmiao 5209209
32 	   p_contract_number => p_contract_number,
33   	   p_assigned_process =>p_assigned_process
34 	   --fmiao 5209209 end
35         );
36 
37   IF ( l_return_status = Fnd_Api.G_RET_STS_ERROR )  THEN
38 	RAISE Fnd_Api.G_EXC_ERROR;
39   ELSIF (l_return_status = Fnd_Api.G_RET_STS_UNEXP_ERROR ) THEN
40 	RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
41   END IF;
42 
43   EXCEPTION
44 
45     WHEN Fnd_Api.G_EXC_ERROR THEN
46       ROLLBACK TO cnsld_ar_hdrs_insert;
47       x_return_status := Fnd_Api.G_RET_STS_ERROR;
48       x_msg_count := l_msg_count ;
49       x_msg_data := l_msg_data ;
50       Fnd_Msg_Pub.count_and_get(
51              p_count   => x_msg_count
52             ,p_data    => x_msg_data);
53     WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
54       ROLLBACK TO cnsld_ar_hdrs_insert;
55       x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
56       x_msg_count := l_msg_count ;
57       x_msg_data := l_msg_data ;
58       Fnd_Msg_Pub.count_and_get(
59              p_count   => x_msg_count
60             ,p_data    => x_msg_data);
61     WHEN OTHERS THEN
62       ROLLBACK TO cnsld_ar_hdrs_insert;
63       x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
64       x_msg_count := l_msg_count ;
65       x_msg_data := l_msg_data ;
66       Fnd_Msg_Pub.ADD_EXC_MSG('OKL_INTERNAL_TO_EXTERNAL_PUB','internal_to_external');
67       Fnd_Msg_Pub.count_and_get(
68              p_count   => x_msg_count
69             ,p_data    => x_msg_data);
70   END internal_to_external;
71 
72   PROCEDURE internal_to_external
73   ( errbuf                         OUT NOCOPY VARCHAR2
74   , retcode                        OUT NOCOPY NUMBER
75   --fmiao 5209209
76   , p_contract_number  			   IN VARCHAR2
77   , p_assigned_process 			   IN VARCHAR2
78   --fmiao 5209209 end
79   )  IS
80 
81   l_api_vesrions   NUMBER := 1;
82   lx_msg_count     NUMBER;
83   l_count1          NUMBER;
84   l_count2          NUMBER;
85   l_count           NUMBER;
86   lx_msg_data       VARCHAR2(450);
87   i                 NUMBER;
88   l_msg_index_out   NUMBER;
89   lx_return_status  VARCHAR(1);
90 
91     l_request_id      NUMBER;
92 
93     CURSOR req_id_csr IS
94 	  SELECT
95           DECODE(Fnd_Global.CONC_REQUEST_ID,-1,NULL,Fnd_Global.CONC_REQUEST_ID)
96 	  FROM dual;
97 
98 
99     CURSOR xsi_cnt_succ_csr( p_req_id NUMBER, p_sts VARCHAR2 ) IS
100           SELECT count(*)
101           FROM okl_ext_sell_invs_v
102           WHERE trx_status_code = p_sts AND
103                 request_id = p_req_id ;
104 
105     CURSOR xsi_cnt_err_csr( p_req_id NUMBER, p_sts VARCHAR2 ) IS
106           SELECT count(*)
107           FROM okl_ext_sell_invs_v
108           WHERE trx_status_code = p_sts AND
109                 request_id = p_req_id ;
110 
111     l_succ_cnt    NUMBER;
112     l_err_cnt     NUMBER;
113 
114     -- ------------------------------------------------
115     -- Bind variables to address issues in bug 3761940
116     -- ------------------------------------------------
117     submitted_sts  okl_ext_sell_invs_v.trx_status_code%TYPE;
118     error_sts      okl_ext_sell_invs_v.trx_status_code%TYPE;
119 
120     BEGIN
121 
122            internal_to_external(p_api_version => l_api_vesrions,
123                                 p_init_msg_list    => OKC_API.G_FALSE,
124                         	x_return_status    => lx_return_status,
125                         	x_msg_count        => lx_msg_count,
126                         	x_msg_data         => errbuf,
127 				--fmiao 5209209
128   				p_contract_number  => p_contract_number,
129   				p_assigned_process => p_assigned_process
130                                 --fmiao 5209209 end
131                                 );
132            IF lx_return_status= 'W' THEN
133               retcode := 1;
134            END IF;
135 
136   EXCEPTION
137       WHEN OTHERS THEN
138         IF p_assigned_process IS NOT NULL THEN
139             DELETE OKL_PARALLEL_PROCESSES
140             WHERE assigned_process = p_assigned_process;
141             COMMIT;
142         END IF;
143   END internal_to_external;
144 
145 
146 END Okl_Internal_To_External_Pub;