DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKS_REPROC_PUB

Source


1 PACKAGE BODY OKS_REPROC_PUB As
2 /* $Header: OKSOREPB.pls 120.0 2005/05/25 17:46:51 appldev noship $ */
3 
4 
5 Procedure submit_request(x_request_id OUT NOCOPY NUMBER)
6 Is
7 l_request_id NUMBER;
8 
9 Begin
10 	l_request_id := FND_REQUEST.SUBMIT_REQUEST('OKS','OKSREPROC','','',FALSE,'SEL','FORM');
11     if (l_request_id > 0) then
12       COMMIT WORK;
13     end if;
14 
15     x_request_id := l_request_id;
16 
17 End;
18 
19 Procedure insert_order_line(
20                             p_ordline_id IN NUMBER,
21                             p_processed IN VARCHAR2,
22                             p_reprocess IN VARCHAR2,
23                             p_hdr_id IN NUMBER,
24 			    p_ordnum IN NUMBER,
25 			    x_id OUT NOCOPY VARCHAR2,
26 			    x_rowid OUT NOCOPY VARCHAR2,
27                             x_return_status OUT NOCOPY VARCHAR2
28                            )
29 Is
30 l_init_msg_list         VARCHAR2(1) := OKC_API.G_FALSE;
31 l_return_status         VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
32 l_msg_count             NUMBER := 0;
33 l_msg_data              VARCHAR2(2000);
34 l_repv_rec              OKS_REP_PVT.repv_rec_type;
35 l_out_repv_rec          OKS_REP_PVT.repv_rec_type;
36 
37 Begin
38 
39 l_repv_rec.order_line_id := p_ordline_id;
40 l_repv_rec.order_id := p_hdr_id;
41 l_repv_rec.order_number  := p_ordnum;
42 l_repv_rec.source_flag := 'MANUAL';
43 l_repv_rec.success_flag:= p_processed;
44 l_repv_rec.reprocess_yn := p_reprocess;
45 
46 SAVEPOINT BEFORE_INSERT;
47 oks_rep_pub.insert_row(p_api_version                  => 1.0,
48                        p_init_msg_list                => l_init_msg_list,
49                        x_return_status                => l_return_status,
50                        x_msg_count                    => l_msg_count,
51                        x_msg_data                     => l_msg_data,
52                        p_repv_rec                     => l_repv_rec ,
53                        x_repv_rec                     => l_out_repv_rec);
54 
55 x_id := l_out_repv_rec.id;
56 
57 select rowid into x_rowid
58 from oks_reprocessing
59 where id = x_id;
60 
61 x_return_status := l_return_status;
62 
63 EXCEPTION
64 WHEN DUP_VAL_ON_INDEX THEN
65         FND_FILE.PUT_LINE (FND_FILE.LOG, 'Dup val exp raised');
66         ROLLBACK to BEFORE_INSERT;
67         x_return_status := 'S';
68 
69 End;
70 
71 Procedure Update_Order_Lines(p_item IN VARCHAR2,
72 			     x_return_status OUT NOCOPY VARCHAR2)
73 Is
74 
75 Cursor Get_Order_lines Is
76                 Select id,object_version_number
77                 From oks_reprocessing
78                 Where reprocess_yn = 'Y'
79                 And Conc_request_id is null;
80 
81 l_obj_vers_num                NUMBER;
82 l_id                          NUMBER;
83 l_new_repv_rec                OKS_REP_PVT.repv_rec_type;
84 l_repv_rec                    OKS_REP_PVT.repv_rec_type;
85 l_return_status               VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
86 l_msg_count                   NUMBER;
87 l_msg_data                    VARCHAR2(2000);
88 
89 Begin
90       x_return_status := l_return_status;
91       If(p_item = 'Submit') Then
92         Open Get_Order_lines;
93         Loop
94                 Fetch Get_Order_lines into l_id,l_obj_vers_num;
95                 Exit when Get_Order_lines%NOTFOUND;
96                 l_repv_rec.id := l_id;
97                 l_repv_rec.object_version_number := l_obj_vers_num;
98                 l_repv_rec.reprocess_yn := 'N';
99                 l_repv_rec.success_flag := 'R';
100 
101                 oks_rep_pub.update_row(p_api_version      => 1.0,
102                                p_init_msg_list    => 'T',
103                                x_return_status    => l_return_status,
104                                x_msg_count        => l_msg_count,
105                                x_msg_data         => l_msg_data,
106                                p_repv_rec         => l_repv_rec ,
107                                x_repv_rec         => l_new_repv_rec);
108 
109                 X_return_status := l_return_status;
110                 If(l_return_status <> FND_API.G_RET_STS_SUCCESS) then
111                         Exit;
112                 End If;
113         End Loop;
114         Close Get_Order_lines;
115      End If;
116 
117 End Update_Order_Lines;
118 
119 
120 Procedure translate_msg(p_id IN NUMBER , x_msg OUT NOCOPY VARCHAR2)
121 Is
122 
123 Cursor get_message_csr(p_id IN NUMBER)
124 Is
125 Select error_text
126 from oks_reprocessing
127 where id = p_id;
128 
129 l_ind1 Number;
130 l_ind2 Number;
131 l_msg Varchar2(2000);
132 i Number;
133 l_message_txt Varchar2(2000);
134 l_id NUMBER;
135 l_error_text VARCHAR2(2000);
136 
137 Begin
138 
139 Open get_message_csr(p_id);
140 Fetch get_message_csr into l_error_text;
141 Close get_message_csr;
142 
143 
144 
145 l_ind1 := instr(l_error_text,'#',1,1);
146 l_ind2 := instr(l_error_text,'#',1,2);
147 
148 
149 If(l_ind2 = 0) Then
150 
151 	x_msg := null;
152 Else
153 
154 	l_msg := substr(l_error_text,l_ind1+1, l_ind2-l_ind1-1);
155 	fnd_message.set_encoded(l_msg);
156 	l_message_txt := fnd_message.get || '; ' ;
157 
158 	i := 3;
159 
160 	Loop
161 
162 		l_ind1 := l_ind2;
163 		l_ind2 := instr(l_error_text,'#',1,i);
164 
165 		If(l_ind2 = 0) Then
166 			exit;
167 		Else
168 			l_msg := substr(l_error_text,l_ind1+1, l_ind2-l_ind1-1);
169 			fnd_message.set_encoded(l_msg);
170 			l_message_txt := l_message_txt || fnd_message.get || '; ' ;
171 			i := i + 1;
172 		End If;
173 	End Loop;
174 
175 
176 	x_msg := l_message_txt;
177 End If;
178 
179 
180 
181 End translate_msg;
182 
183 End OKS_REPROC_PUB;
184