1: PACKAGE BODY ZPB_ECM AS
2: /* $Header: zpbecm.plb 120.6 2007/12/04 15:26:41 mbhat ship $ */
3:
4: m_olapSchema varchar2(4) := upper(zpb_aw.get_schema)||'.';
5:
6: TYPE global_ecm_hash IS TABLE OF GLOBAL_ECM INDEX BY VARCHAR2(30);
7: m_global_ecm_hash global_ecm_hash;
8:
17: p_object in varchar2)
18: return varchar2
19: is
20: begin
21: return zpb_aw.interp('shw obj(property '''||p_property||''' '''||
22: p_object||''')');
23: end GET_PROP;
24:
25: -------------------------------------------------------------------------------
37: l_aw := p_aw;
38: else
39: l_aw := m_olapSchema||p_aw;
40: end if;
41: zpb_aw.execute ('aw attach '||l_aw);
42: l_global_ecm := get_global_ecm(p_aw);
43: l_aw := l_aw||'!';
44:
45: l_lineType := l_aw||l_global_ecm.LineTypeDim;
109: l_aw := p_aw;
110: else
111: l_aw := m_olapSchema||p_aw;
112: end if;
113: zpb_aw.execute ('aw attach '||l_aw);
114: l_global_ecm := get_global_ecm(p_aw);
115: l_aw := l_aw||'!';
116:
117: l_lineType := l_aw||l_global_ecm.LineTypeDim;
141: l_aw := p_aw;
142: else
143: l_aw := m_olapSchema||p_aw;
144: end if;
145: zpb_aw.execute ('aw attach '||l_aw);
146: l_global_ecm := get_global_ecm(p_aw);
147: l_aw := l_aw||'!';
148:
149: l_attrDim := l_aw||l_global_ecm.AttrDim;
147: l_aw := l_aw||'!';
148:
149: l_attrDim := l_aw||l_global_ecm.AttrDim;
150: l_attrEcm.AttrRelation :=
151: zpb_aw.interp('shw '||l_aw||p_global_attr_ecm.ExpObjVar|| '(' ||l_aw||
152: l_global_ecm.AttrDim||' '''||p_attr||''')');
153:
154: l_attrEcm.LdscFrm := get_prop ('LDSCFRM', l_attrEcm.AttrRelation);
155:
154: l_attrEcm.LdscFrm := get_prop ('LDSCFRM', l_attrEcm.AttrRelation);
155:
156: l_attrDim := l_global_ecm.AttrDim;
157: l_attrEcm.RangeDimension :=
158: zpb_aw.interp ('shw '||l_aw||p_global_attr_ecm.RangeDimRel|| '('||
159: l_aw||l_global_ecm.AttrDim||' '''||p_attr||''')');
160:
161: l_attrEcm.DefOrderVSet := get_prop('DEFORDERVSET',l_attrEcm.RangeDimension);
162: l_attrEcm.LdscVar := get_prop('LDSCVAR',l_attrEcm.RangeDimension);
180: l_aw := p_aw;
181: else
182: l_aw := m_olapSchema||p_aw;
183: end if;
184: zpb_aw.execute ('aw attach '||l_aw);
185: l_global_ecm := get_global_ecm(p_aw);
186: l_aw := l_aw||'!';
187:
188: zpb_aw.execute ('push '||l_aw||l_global_ecm.DimDim);
184: zpb_aw.execute ('aw attach '||l_aw);
185: l_global_ecm := get_global_ecm(p_aw);
186: l_aw := l_aw||'!';
187:
188: zpb_aw.execute ('push '||l_aw||l_global_ecm.DimDim);
189: zpb_aw.execute ('limit '||l_aw||l_global_ecm.DimDim||' to '''||p_dim||'''');
190:
191: l_dim_data.Ldsc := zpb_aw.interp ('shw '||l_aw||l_global_ecm.LdscVar);
192: l_dim_data.PlLdsc := zpb_aw.interp ('shw '||l_aw||l_global_ecm.PlLdscVar);
185: l_global_ecm := get_global_ecm(p_aw);
186: l_aw := l_aw||'!';
187:
188: zpb_aw.execute ('push '||l_aw||l_global_ecm.DimDim);
189: zpb_aw.execute ('limit '||l_aw||l_global_ecm.DimDim||' to '''||p_dim||'''');
190:
191: l_dim_data.Ldsc := zpb_aw.interp ('shw '||l_aw||l_global_ecm.LdscVar);
192: l_dim_data.PlLdsc := zpb_aw.interp ('shw '||l_aw||l_global_ecm.PlLdscVar);
193: l_dim_data.PlSdsc := zpb_aw.interp ('shw '||l_aw||l_global_ecm.PlSdscVar);
187:
188: zpb_aw.execute ('push '||l_aw||l_global_ecm.DimDim);
189: zpb_aw.execute ('limit '||l_aw||l_global_ecm.DimDim||' to '''||p_dim||'''');
190:
191: l_dim_data.Ldsc := zpb_aw.interp ('shw '||l_aw||l_global_ecm.LdscVar);
192: l_dim_data.PlLdsc := zpb_aw.interp ('shw '||l_aw||l_global_ecm.PlLdscVar);
193: l_dim_data.PlSdsc := zpb_aw.interp ('shw '||l_aw||l_global_ecm.PlSdscVar);
194: l_dim_data.Sdsc := zpb_aw.interp ('shw '||l_aw||l_global_ecm.SdscVar);
195: l_dim_data.Type := zpb_aw.interp ('shw '||l_aw||l_global_ecm.DimTypeRel);
188: zpb_aw.execute ('push '||l_aw||l_global_ecm.DimDim);
189: zpb_aw.execute ('limit '||l_aw||l_global_ecm.DimDim||' to '''||p_dim||'''');
190:
191: l_dim_data.Ldsc := zpb_aw.interp ('shw '||l_aw||l_global_ecm.LdscVar);
192: l_dim_data.PlLdsc := zpb_aw.interp ('shw '||l_aw||l_global_ecm.PlLdscVar);
193: l_dim_data.PlSdsc := zpb_aw.interp ('shw '||l_aw||l_global_ecm.PlSdscVar);
194: l_dim_data.Sdsc := zpb_aw.interp ('shw '||l_aw||l_global_ecm.SdscVar);
195: l_dim_data.Type := zpb_aw.interp ('shw '||l_aw||l_global_ecm.DimTypeRel);
196: l_dim_data.ExpObj := zpb_aw.interp ('shw '||l_aw||l_global_ecm.ExpObjVar);
189: zpb_aw.execute ('limit '||l_aw||l_global_ecm.DimDim||' to '''||p_dim||'''');
190:
191: l_dim_data.Ldsc := zpb_aw.interp ('shw '||l_aw||l_global_ecm.LdscVar);
192: l_dim_data.PlLdsc := zpb_aw.interp ('shw '||l_aw||l_global_ecm.PlLdscVar);
193: l_dim_data.PlSdsc := zpb_aw.interp ('shw '||l_aw||l_global_ecm.PlSdscVar);
194: l_dim_data.Sdsc := zpb_aw.interp ('shw '||l_aw||l_global_ecm.SdscVar);
195: l_dim_data.Type := zpb_aw.interp ('shw '||l_aw||l_global_ecm.DimTypeRel);
196: l_dim_data.ExpObj := zpb_aw.interp ('shw '||l_aw||l_global_ecm.ExpObjVar);
197: if (zpb_aw.interpbool ('shw '||l_aw||l_global_ecm.IsDataDimVar)) then
190:
191: l_dim_data.Ldsc := zpb_aw.interp ('shw '||l_aw||l_global_ecm.LdscVar);
192: l_dim_data.PlLdsc := zpb_aw.interp ('shw '||l_aw||l_global_ecm.PlLdscVar);
193: l_dim_data.PlSdsc := zpb_aw.interp ('shw '||l_aw||l_global_ecm.PlSdscVar);
194: l_dim_data.Sdsc := zpb_aw.interp ('shw '||l_aw||l_global_ecm.SdscVar);
195: l_dim_data.Type := zpb_aw.interp ('shw '||l_aw||l_global_ecm.DimTypeRel);
196: l_dim_data.ExpObj := zpb_aw.interp ('shw '||l_aw||l_global_ecm.ExpObjVar);
197: if (zpb_aw.interpbool ('shw '||l_aw||l_global_ecm.IsDataDimVar)) then
198: l_dim_data.IsDataDim := 'YES';
191: l_dim_data.Ldsc := zpb_aw.interp ('shw '||l_aw||l_global_ecm.LdscVar);
192: l_dim_data.PlLdsc := zpb_aw.interp ('shw '||l_aw||l_global_ecm.PlLdscVar);
193: l_dim_data.PlSdsc := zpb_aw.interp ('shw '||l_aw||l_global_ecm.PlSdscVar);
194: l_dim_data.Sdsc := zpb_aw.interp ('shw '||l_aw||l_global_ecm.SdscVar);
195: l_dim_data.Type := zpb_aw.interp ('shw '||l_aw||l_global_ecm.DimTypeRel);
196: l_dim_data.ExpObj := zpb_aw.interp ('shw '||l_aw||l_global_ecm.ExpObjVar);
197: if (zpb_aw.interpbool ('shw '||l_aw||l_global_ecm.IsDataDimVar)) then
198: l_dim_data.IsDataDim := 'YES';
199: else
192: l_dim_data.PlLdsc := zpb_aw.interp ('shw '||l_aw||l_global_ecm.PlLdscVar);
193: l_dim_data.PlSdsc := zpb_aw.interp ('shw '||l_aw||l_global_ecm.PlSdscVar);
194: l_dim_data.Sdsc := zpb_aw.interp ('shw '||l_aw||l_global_ecm.SdscVar);
195: l_dim_data.Type := zpb_aw.interp ('shw '||l_aw||l_global_ecm.DimTypeRel);
196: l_dim_data.ExpObj := zpb_aw.interp ('shw '||l_aw||l_global_ecm.ExpObjVar);
197: if (zpb_aw.interpbool ('shw '||l_aw||l_global_ecm.IsDataDimVar)) then
198: l_dim_data.IsDataDim := 'YES';
199: else
200: l_dim_data.IsDataDim := 'NO';
193: l_dim_data.PlSdsc := zpb_aw.interp ('shw '||l_aw||l_global_ecm.PlSdscVar);
194: l_dim_data.Sdsc := zpb_aw.interp ('shw '||l_aw||l_global_ecm.SdscVar);
195: l_dim_data.Type := zpb_aw.interp ('shw '||l_aw||l_global_ecm.DimTypeRel);
196: l_dim_data.ExpObj := zpb_aw.interp ('shw '||l_aw||l_global_ecm.ExpObjVar);
197: if (zpb_aw.interpbool ('shw '||l_aw||l_global_ecm.IsDataDimVar)) then
198: l_dim_data.IsDataDim := 'YES';
199: else
200: l_dim_data.IsDataDim := 'NO';
201: end if;
198: l_dim_data.IsDataDim := 'YES';
199: else
200: l_dim_data.IsDataDim := 'NO';
201: end if;
202: if (zpb_aw.interpbool ('shw SHARED!ISOWNERDIM (SHARED!'||
203: l_global_ecm.DimDim||' '''||p_dim||''')')) then
204: l_dim_data.IsOwnerDim := 'YES';
205: else
206: l_dim_data.IsOwnerDim := 'NO';
205: else
206: l_dim_data.IsOwnerDim := 'NO';
207: end if;
208:
209: zpb_aw.execute ('pop '||l_aw||l_global_ecm.DimDim);
210: return l_dim_data;
211:
212: end GET_DIMENSION_DATA;
213: -------------------------------------------------------------------------------
240: l_aw := p_aw;
241: else
242: l_aw := m_olapSchema||p_aw;
243: end if;
244: zpb_aw.execute ('aw attach '||l_aw);
245:
246: begin
247: l_dim_ecm := m_dim_ecm_hash(l_aw||'***'||p_dim);
248: return l_dim_ecm;
253:
254: l_global_ecm := get_global_ecm(p_aw);
255: l_awQual := l_aw||'!';
256:
257: l_dim := l_awQual||zpb_aw.interp('shw '||l_awQual||l_global_ecm.ExpObjVar||
258: ' ('||l_awQual||l_global_ecm.DimDim||' '''||
259: p_dim||''')');
260:
261: l_dim_ecm.AncestorRel := get_prop('ANCESTORREL', l_dim);
351: l_aw := p_aw;
352: else
353: l_aw := m_olapSchema||p_aw;
354: end if;
355: zpb_aw.execute ('aw attach '||l_aw);
356: l_global_ecm := get_global_ecm(p_aw);
357: l_aw := l_aw||'!';
358:
359: l_dim :=l_aw||zpb_aw.interp('shw '||l_aw||l_global_ecm.ExpObjVar||'('||
355: zpb_aw.execute ('aw attach '||l_aw);
356: l_global_ecm := get_global_ecm(p_aw);
357: l_aw := l_aw||'!';
358:
359: l_dim :=l_aw||zpb_aw.interp('shw '||l_aw||l_global_ecm.ExpObjVar||'('||
360: l_aw||l_global_ecm.DimDim||' '''||p_dim||''')');
361:
362: l_line_ecm.AggBaseFrm := get_prop('AGGBASEFRM', l_dim);
363: l_line_ecm.AggDefFrm := get_prop('AGGDEFFRM', l_dim);
407: l_aw := p_aw;
408: else
409: l_aw := m_olapSchema||p_aw;
410: end if;
411: zpb_aw.execute ('aw attach '||l_aw);
412: l_global_ecm := get_global_ecm(p_aw);
413: l_aw := l_aw||'!';
414:
415: l_dim :=l_aw||zpb_aw.interp('shw '||l_aw||l_global_ecm.ExpObjVar||'('||
411: zpb_aw.execute ('aw attach '||l_aw);
412: l_global_ecm := get_global_ecm(p_aw);
413: l_aw := l_aw||'!';
414:
415: l_dim :=l_aw||zpb_aw.interp('shw '||l_aw||l_global_ecm.ExpObjVar||'('||
416: l_aw||l_global_ecm.DimDim||' '''||p_dim||''')');
417:
418: l_time_ecm.CalendarVar := get_prop('CALENDARVAR', l_dim);
419: l_time_ecm.EndDateVar := get_prop('ENDDATEVAR', l_dim);
458: l_aw := p_aw;
459: else
460: l_aw := m_olapSchema||p_aw;
461: end if;
462: zpb_aw.execute ('aw attach '||l_aw);
463: l_global_ecm := get_global_ecm(p_aw);
464: l_aw := l_aw||'!';
465:
466: l_attrDim := l_aw||l_global_ecm.AttrDim;
502: l_aw := p_aw;
503: else
504: l_aw := m_olapSchema||p_aw;
505: end if;
506: zpb_aw.execute ('aw attach '||l_aw);
507:
508: begin
509: l_ecm := m_global_ecm_hash(l_aw);
510: return l_ecm;
514: end;
515:
516: l_awQual := l_aw||'!';
517:
518: zpb_aw.execute ('call DB.POP.DMVARS ('''||l_aw||''')');
519: l_ecm.ECMLocator := zpb_aw.interp('shw DM.ECMLOCATOR');
520: if (l_ecm.ECMLocator = 'NA') then
521: l_ecm.ECMLocator := '';
522: return null;
515:
516: l_awQual := l_aw||'!';
517:
518: zpb_aw.execute ('call DB.POP.DMVARS ('''||l_aw||''')');
519: l_ecm.ECMLocator := zpb_aw.interp('shw DM.ECMLOCATOR');
520: if (l_ecm.ECMLocator = 'NA') then
521: l_ecm.ECMLocator := '';
522: return null;
523: end if;
537: l_ecm.FmtBoolPropDim := get_prop('FMTBOOLPROPDIM', l_ecm.ECMLocator);
538: l_ecm.FmtTextPropDim := get_prop('FMTTEXTPROPDIM', l_ecm.ECMLocator);
539: l_ecm.IsMeasDimFrm := get_prop('ISMEASDIMFRM', l_ecm.ECMLocator);
540:
541: l_meas := zpb_aw.interp('shw '||l_awQual||l_ecm.ExpObjVar||' ('||l_awQual||
542: l_ecm.DimDim||' lmt ('||l_awQual||l_ecm.DimDim||
543: ' to '||l_awQual||l_ecm.IsMeasDimFrm||' eq yes)');
544:
545: l_ecm.IsCurrInstVar := get_prop('ISCURRINSTVAR', l_meas);
605: l_aw := p_aw;
606: else
607: l_aw := m_olapSchema||p_aw;
608: end if;
609: zpb_aw.execute ('aw attach '||l_aw);
610: l_global_ecm := get_global_ecm(p_aw);
611: l_aw := l_aw||'!';
612:
613: l_lineType := l_aw||l_global_ecm.LineTypeDim;
643: l_aw := p_aw;
644: else
645: l_aw := m_olapSchema||p_aw;
646: end if;
647: zpb_aw.execute ('aw attach '||l_aw);
648: l_global_ecm := get_global_ecm(p_aw);
649: l_aw := l_aw||'!';
650:
651: l_secEntity := l_aw||l_global_ecm.SecentityDim;