DBA Data[Home] [Help]

PACKAGE BODY: APPS.QPR_AW_INTERFACE_PVT

Source


1 PACKAGE BODY QPR_AW_INTERFACE_PVT as
2 /* $Header: QPRAWINFCB.pls 120.0 2007/10/11 13:13:12 agbennet noship $ */
3 -- ATTACH_AW
4 procedure attach_aw
5 (p_aw_name IN varchar2, p_attach_mode IN varchar2, x_return_status OUT NOCOPY varchar2)
6 is
7 execution_string varchar2(100) ;
8 BEGIN
9 if( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
10   FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,'QPR_AW_INTERFACE_PVT.ATTACH_AW', 'Attach_aw procedure invoked' );
11 end if;
12 
13 execution_string := 'aw attach '||p_aw_name||' '||p_attach_mode||';';
14 -- Attach specified AW in multi mode .
15 dbms_aw.execute(execution_string);
16 
17 if( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
18     FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,'QPR_AW_INTERFACE_PVT.ATTACH_AW', 'DML Program Attach succeeded' );
19 end if;
20 
21 x_return_status := 'success';
22 
23 if( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
24     FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,'QPR_AW_INTERFACE_PVT.ATTACH_AW', 'Attach_aw was successful' );
25 end if;
26 
27 EXCEPTION
28 when others then
29 x_return_status := 'error';
30 if( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
31     FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,'QPR_AW_INTERFACE_PVT.ATTACH_AW', 'Attach_aw failed' );
32 end if;
33 
34 END attach_aw;
35 
36 -- DETACH_AW
37 procedure detach_aw
38 (p_aw_name IN varchar2,x_return_status OUT NOCOPY varchar2)
39 is
40 execution_string varchar2(100);
41 BEGIN
42 if( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
43     FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,'QPR_AW_INTERFACE_PVT.DETACH_AW', 'Detach_aw procedure invoked' );
44 end if;
45 execution_string := 'aw detach '||p_aw_name||';';
46 -- Detached specified AW
47 dbms_aw.execute(execution_string);
48 if( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
49     FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,'QPR_AW_INTERFACE_PVT.DETACH_AW', 'DML Program DETACH succeeded' );
50 end if;
51 x_return_status := 'success';
52 if( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
53     FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,'QPR_AW_INTERFACE_PVT.DETACH_AW', 'Detach_aw program succeeded' );
54 end if;
55 EXCEPTION
56 when others then
57 x_return_status := 'error';
58 if( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
59     FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,'QPR_AW_INTERFACE_PVT.DETACH_AW', 'Detach_aw program failed' );
60 end if;
61 END detach_aw;
62 -- writeback_aw
63 /*
64 procedure writeback_aw
65 (dimTable in QPR_DIM_TABLE,measTable in QPR_MEAS_TABLE,x_return_status OUT NOCOPY varchar2)
66 is
67 dimString varchar2(1000);
68 measString varchar2(1000);
69 dimCounter int := 1;
70 measCounter int := 1;
71 cell_id int := 1;
72 dimCheck boolean := false;
73 modMeasVal varchar2(100);
74 begin
75 if( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
76     FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,'QPR_AW_INTERFACE_PVT.WRITEBACK_AW', 'writeback_aw procedure invoked' );
77 end if;
78       << outer_loop >>
79       while (1=1)
80       loop
81         << dim_loop >>
82         while (dimTable(dimCounter).cell_id = cell_id)
83         loop
84         dimString := dimString || 'limit '||dimTable(dimCounter).dimName ||' to'''||dimTable(dimCounter).dimValue||''';' ;
85         dimCounter := dimCounter +1;
86         dimCheck := true;
87         if(dimCounter > dimTable.count) then
88           exit dim_loop;
89         end if;
90       end loop dim_loop;
91       << meas_loop >>
92       while(measTable(measCounter).cell_id = cell_id)
93       loop
94         modMeasVal := 'NA';
95 	if(measTable(measCounter).measValue =  oracleNull)THEN
96 	   measString := measString || measTable(measCounter).measName ||' = '|| modMeasVal || ';' ;
97         elsif  measTable(measCounter).measDataType = 'Text'  THEN
98             measString := measString || measTable(measCounter).measName ||' = '''|| measTable(measCounter).measValue || ''';' ;
99 
100 	    elsif measTable(measCounter).measDataType = 'Number' THEN
101         measString := measString || measTable(measCounter).measName ||' = '|| measTable(measCounter).measValue || ';' ;
102     end if;
103         measCounter := measCounter+1;
104       if(dimCheck <> false) then -- Check if dimension isn't null in which caseentire cube wud b set to above value.
105         dbms_aw.execute(dimString || measString);
106       end if;
107       if(measCounter > measTable.count) then
108           exit outer_loop;
109        end if;
110        measString := '';
111        end loop meas_loop;
112        cell_id :=cell_id+1;
113        dimString := '';
114        dimCheck := false;
115        end loop outer_loop;
116       dbms_aw.execute('ALLSTAT;');
117    x_return_status := 'success';
118 if( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
119     FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,'QPR_AW_INTERFACE_PVT.WRITEBACK_AW', 'WRITEBACK_AW procedure succeeded' );
120 end if;
121   EXCEPTION
122 when others then
123 x_return_status := 'error';
124 if( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
125     FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,'QPR_AW_INTERFACE_PVT.WRITEBACK_AW', 'WRITEBACK_AW procedure failed '||sqlcode||' '||sqlerrm);
126 end if;
127 
128 end writeback_aw;
129 */
130 /*
131 --Model Execution
132 procedure executeModel(modelName in varchar2, modelDimension in varchar2, modelMeasName in varchar2, modelExecScope in QPR_DIM_TABLE, writeBackMeas in QPR_MEAS_MET_TABLE,x_return_status OUT NOCOPY varchar2)
133 AS
134 cmdString varchar2(4000);
135 dimName varchar2(4000);
136 BEGIN
137 if( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
138     FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,'QPR_AW_INTERFACE_PVT.EXECUTEMODEL', 'EXECUTEMODEL procedure invoked' );
139 end if;
140 
141     dimName := '';
142 
143     for i in 1..modelExecScope.count loop
144        if dimName = modelExecScope(i).dimName then
145 	  cmdString := cmdString || 'limit '||modelExecScope(i).dimName ||' add '''||modelExecScope(i).dimValue||''';';
146        else
147 	  cmdString := cmdString || 'limit '||modelExecScope(i).dimName ||' to '''||modelExecScope(i).dimValue||''';';
148 	  dimName := modelExecScope(i).dimName;
149        end if;
150     end loop;
151     dbms_aw.execute(cmdString);
152 
153 if( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
154     FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,'QPR_AW_INTERFACE_PVT.EXECUTEMODEL', 'Scope set for the execution of the model' );
155 end if;
156 
157 
158 
159     cmdString := '';
160     cmdString := modelMeasName || '= 0.0;';
161     dbms_aw.execute(cmdString);
162 
163 
164     dbms_aw.execute('naskip2 = yes');
165     dbms_aw.execute(modelName ||' '||modelMeasName);
166     dbms_aw.execute('naskip2 = no');
167 
168 if( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
169     FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,'QPR_AW_INTERFACE_PVT.EXECUTEMODEL', 'Model '||modelName ||' Executed successfully ');
170 end if;
171 
172 
173 
174     cmdString := '';
175     for i in 1..writeBackMeas.count loop
176     cmdString := cmdString || 'limit '||modelDimension ||' to '||''''||writeBackMeas(i).measPPACode||''''||' ;';
177     cmdString := cmdString ||writeBackMeas(i).measId ||' = ' ||modelMeasName||' ; ';
178     end loop;
179     dbms_aw.execute(cmdString);
180 if( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
181     FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,'QPR_AW_INTERFACE_PVT.EXECUTEMODEL', 'Measure Values written back after the execution of model');
182 end if;
183 
184     cmdString := 'ALLSTAT;';
185     dbms_aw.execute(cmdString);
186     x_return_status := 'success';
187 if( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
188     FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,'QPR_AW_INTERFACE_PVT.EXECUTEMODEL', 'ExecuteModel Procedure successful');
189 end if;
190 
191 EXCEPTION
192     when others then
193     x_return_status := 'error';
194 if( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
195     FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,'QPR_AW_INTERFACE_PVT.EXECUTEMODEL', 'ExecuteModel Procedure failed '||sqlcode||' '||sqlerrm);
196 end if;
197 END;
198 
199 --Commit
200 procedure commitData(commitMeas in QPR_MEAS_MET_TABLE,x_return_status OUT NOCOPY varchar2)
201 AS
202 LOCK_ACQUIRE_FAILED1 EXCEPTION;
203 LOCK_ACQUIRE_FAILED2 EXCEPTION;
204 LOCK_ACQUIRE_FAILED3 EXCEPTION;
205 
206 PRAGMA EXCEPTION_INIT(LOCK_ACQUIRE_FAILED1, -37040);
207 PRAGMA EXCEPTION_INIT(LOCK_ACQUIRE_FAILED2, -37044);
208 PRAGMA EXCEPTION_INIT(LOCK_ACQUIRE_FAILED3, -37011);
209 cmdString varchar2(4000);
210 measString varchar2(4000);
211 BEGIN
212 if( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
213     FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,'QPR_AW_INTERFACE_PVT.COMMITDATA', 'Procedure CommitData Invoked');
214 end if;
215 
216 
217     cmdString := '';
218     measString := '';
219     for i in 1..commitMeas.count loop
220     if ( i = 1 ) then
221     	measString := commitMeas(i).measId;
222     else
223         measString := measString||','|| commitMeas(i).measid;
224     end if;
225     end loop;
226     cmdString := 'acquire '||measString||';';
227     dbms_aw.execute(cmdString);
228 if( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
229     FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,'QPR_AW_INTERFACE_PVT.COMMITDATA', 'Acquired the lock for the measures that are to be committed');
230 end if;
231 
232 
233 
234     cmdString := 'UPDATE;';
235     dbms_aw.execute(cmdString);
236 
237 if( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
238     FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,'QPR_AW_INTERFACE_PVT.COMMITDATA', 'Update of measures Successful');
239 end if;
240 
241 
242     cmdString := 'COMMIT;';
243     dbms_aw.execute(cmdString);
244 
245 if( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
246     FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,'QPR_AW_INTERFACE_PVT.COMMITDATA', 'Commit measure values Successful');
247 end if;
248 
249 
250     cmdString := 'Release '|| measString ||';';
251     dbms_aw.execute(cmdString);
252 
253 if( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
254     FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,'QPR_AW_INTERFACE_PVT.COMMITDATA', 'Released the lock acquired on the measures');
255 end if;
256 x_return_status := 'success';
257 if( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
258     FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,'QPR_AW_INTERFACE_PVT.COMMITDATA', 'CommitData Procedure Successful');
259 end if;
260 EXCEPTION
261     WHEN LOCK_ACQUIRE_FAILED1 THEN
262     x_return_status := 'LOCK_ACQUIRE_FAILED';
263 if( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
264     FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,'QPR_AW_INTERFACE_PVT.COMMITDATA', 'CommitData Procedure failed '||x_return_status||sqlcode||' '||sqlerrm);
265 end if;
266 
267  WHEN LOCK_ACQUIRE_FAILED2 THEN
268     x_return_status := 'LOCK_ACQUIRE_FAILED';
269 if( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
270     FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,'QPR_AW_INTERFACE_PVT.COMMITDATA', 'CommitData Procedure failed '||x_return_status||sqlcode||' '||sqlerrm);
271 end if;
272 
273  WHEN LOCK_ACQUIRE_FAILED3 THEN
274     x_return_status := 'LOCK_ACQUIRE_FAILED';
275 if( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
276     FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,'QPR_AW_INTERFACE_PVT.COMMITDATA', 'CommitData Procedure failed '||x_return_status||sqlcode||' '||sqlerrm);
277 end if;
278 
279  when others then
280     x_return_status := 'error';
281 if( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
282     FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,'QPR_AW_INTERFACE_PVT.COMMITDATA', 'CommitData Procedure failed '||x_return_status||sqlcode||' '||sqlerrm);
283 end if;
284 
285 END;
286 
287 procedure handleMeas(commitMeas in QPR_MEAS_MET_TABLE,dim in QPR_MEAS_MET_TABLE,acquire in varchar2,x_return_status OUT NOCOPY varchar2)
288 as
289 LOCK_ACQUIRE_FAILED1 EXCEPTION;
290 LOCK_ACQUIRE_FAILED2 EXCEPTION;
291 PRAGMA EXCEPTION_INIT(LOCK_ACQUIRE_FAILED1, -37040);
292 PRAGMA EXCEPTION_INIT(LOCK_ACQUIRE_FAILED2, -37011);
293 dimString varchar2(4000);
294 begin
295 if( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
296     FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,'QPR_AW_INTERFACE_PVT.handleMeas','Enter '||acquire);
297 end if;
298 
299    for i in 1..dim.count loop
300    if(i = 1) then
301       dimString := dim(i).measid;
302    else
303    dimString := dimString||','||dim(i).measid;
304    end if;
305 
306 end loop;
307 
308 
309     if (acquire = 'YES') then
310     for i in 1..commitMeas.count loop
311        dbms_aw.execute('acquire resync '||commitMeas(i).measid||' consistent with '||dimString);
312     end loop;
313     else
314        dbms_aw.execute('update');
315        dbms_aw.execute('commit');
316     for i in 1..commitMeas.count loop
317        dbms_aw.execute('release '||commitMeas(i).measid);
318     end loop;
319        end if;
320 
321 x_return_status := 'success';
322 
323 EXCEPTION
324     WHEN LOCK_ACQUIRE_FAILED1 THEN
325     x_return_status := 'LOCK_ACQUIRE_FAILED';
326 if( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
327     FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,'QPR_AW_INTERFACE_PVT.handleMeas', x_return_status||' '||sqlcode||' '||sqlerrm);
328 end if;
329 
330  WHEN LOCK_ACQUIRE_FAILED2 THEN
331     x_return_status := 'LOCK_ACQUIRE_FAILED';
332 if( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
333     FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,'QPR_AW_INTERFACE_PVT.handleMeas', x_return_status||' '||sqlcode||' '||sqlerrm);
334 end if;
335 
336  when others then
337     x_return_status := 'error';
338 if( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
339     FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,'QPR_AW_INTERFACE_PVT.handleMeas', x_return_status||' '||sqlcode||' '||sqlerrm);
340 end if;
341 end;*/
342 
343 END QPR_AW_INTERFACE_PVT;