36: PROCEDURE addAttributes(pageCustDocID jdr_paths.path_docid%TYPE,
37: pageCompSeq jdr_attributes.att_comp_seq%TYPE,
38: regionCustDocID jdr_paths.path_docid%TYPE,
39: regionCompSeq jdr_attributes.att_comp_seq%TYPE,
40: extendingRegion jdr_components.comp_id%TYPE,
41: needElementAtt BOOLEAN)
42: IS
43: CURSOR c_attributes(docID jdr_paths.path_docid%TYPE,
44: compSeq jdr_components.comp_seq%TYPE) IS
40: extendingRegion jdr_components.comp_id%TYPE,
41: needElementAtt BOOLEAN)
42: IS
43: CURSOR c_attributes(docID jdr_paths.path_docid%TYPE,
44: compSeq jdr_components.comp_seq%TYPE) IS
45: SELECT att_seq, att_name, att_value
46: FROM jdr_attributes
47: WHERE att_comp_docid = docID AND
48: att_comp_seq = compSeq;
110: -- regionStartSeq Start sequence of the region components (source)
111: -- regionEndSeq End sequence of the region components
112: -- extendingRegion Component ID of the extending region
113: PROCEDURE addComponents(pageCustDocID jdr_paths.path_docid%TYPE,
114: pageStartSeq jdr_components.comp_seq%TYPE,
115: regionCustDocID jdr_paths.path_docid%TYPE,
116: regionStartSeq jdr_components.comp_seq%TYPE,
117: regionEndSeq jdr_components.comp_seq%TYPE,
118: extendingRegion jdr_components.comp_id%TYPE)
112: -- extendingRegion Component ID of the extending region
113: PROCEDURE addComponents(pageCustDocID jdr_paths.path_docid%TYPE,
114: pageStartSeq jdr_components.comp_seq%TYPE,
115: regionCustDocID jdr_paths.path_docid%TYPE,
116: regionStartSeq jdr_components.comp_seq%TYPE,
117: regionEndSeq jdr_components.comp_seq%TYPE,
118: extendingRegion jdr_components.comp_id%TYPE)
119: IS
120: CURSOR c_components(docID jdr_paths.path_docid%TYPE,
113: PROCEDURE addComponents(pageCustDocID jdr_paths.path_docid%TYPE,
114: pageStartSeq jdr_components.comp_seq%TYPE,
115: regionCustDocID jdr_paths.path_docid%TYPE,
116: regionStartSeq jdr_components.comp_seq%TYPE,
117: regionEndSeq jdr_components.comp_seq%TYPE,
118: extendingRegion jdr_components.comp_id%TYPE)
119: IS
120: CURSOR c_components(docID jdr_paths.path_docid%TYPE,
121: startSeq jdr_components.comp_seq%TYPE,
114: pageStartSeq jdr_components.comp_seq%TYPE,
115: regionCustDocID jdr_paths.path_docid%TYPE,
116: regionStartSeq jdr_components.comp_seq%TYPE,
117: regionEndSeq jdr_components.comp_seq%TYPE,
118: extendingRegion jdr_components.comp_id%TYPE)
119: IS
120: CURSOR c_components(docID jdr_paths.path_docid%TYPE,
121: startSeq jdr_components.comp_seq%TYPE,
122: endSeq jdr_components.comp_seq%TYPE) IS
117: regionEndSeq jdr_components.comp_seq%TYPE,
118: extendingRegion jdr_components.comp_id%TYPE)
119: IS
120: CURSOR c_components(docID jdr_paths.path_docid%TYPE,
121: startSeq jdr_components.comp_seq%TYPE,
122: endSeq jdr_components.comp_seq%TYPE) IS
123: SELECT comp_seq, comp_level, comp_grouping, comp_element, comp_id
124: FROM jdr_components
125: WHERE comp_docid = docID AND
118: extendingRegion jdr_components.comp_id%TYPE)
119: IS
120: CURSOR c_components(docID jdr_paths.path_docid%TYPE,
121: startSeq jdr_components.comp_seq%TYPE,
122: endSeq jdr_components.comp_seq%TYPE) IS
123: SELECT comp_seq, comp_level, comp_grouping, comp_element, comp_id
124: FROM jdr_components
125: WHERE comp_docid = docID AND
126: comp_seq >= startSeq AND
120: CURSOR c_components(docID jdr_paths.path_docid%TYPE,
121: startSeq jdr_components.comp_seq%TYPE,
122: endSeq jdr_components.comp_seq%TYPE) IS
123: SELECT comp_seq, comp_level, comp_grouping, comp_element, comp_id
124: FROM jdr_components
125: WHERE comp_docid = docID AND
126: comp_seq >= startSeq AND
127: comp_seq <= endSeq;
128:
125: WHERE comp_docid = docID AND
126: comp_seq >= startSeq AND
127: comp_seq <= endSeq;
128:
129: pageSeq jdr_components.comp_seq%TYPE := pageStartSeq;
130: compRec c_components%ROWTYPE;
131: needElementAtt BOOLEAN;
132: BEGIN
133: -- Retrieve all of the components from the region document and insert
156: pageSeq <> 1) THEN
157: compRec.comp_grouping := NULL;
158: END IF;
159:
160: INSERT INTO jdr_components
161: (comp_docid, comp_seq, comp_level, comp_grouping, comp_element, comp_id)
162: VALUES
163: (pageCustDocID, pageSeq, compRec.comp_level,
164: compRec.comp_grouping, compRec.comp_element, compRec.comp_id);
198: -- regionCustDocID Document ID of the region customization document
199: -- extendingRegion Component ID of the extending region
200: PROCEDURE appendModifications(pageCustDocID jdr_paths.path_docid%TYPE,
201: regionCustDocID jdr_paths.path_docid%TYPE,
202: extendingRegion jdr_components.comp_id%TYPE)
203:
204: IS
205: pageStartSeq jdr_components.comp_seq%TYPE;
206: regionEndSeq jdr_components.comp_seq%TYPE;
201: regionCustDocID jdr_paths.path_docid%TYPE,
202: extendingRegion jdr_components.comp_id%TYPE)
203:
204: IS
205: pageStartSeq jdr_components.comp_seq%TYPE;
206: regionEndSeq jdr_components.comp_seq%TYPE;
207: BEGIN
208: -- Get the starting sequence for the new customizations for the page
209: SELECT MAX(comp_seq) + 1 INTO pageStartSeq
202: extendingRegion jdr_components.comp_id%TYPE)
203:
204: IS
205: pageStartSeq jdr_components.comp_seq%TYPE;
206: regionEndSeq jdr_components.comp_seq%TYPE;
207: BEGIN
208: -- Get the starting sequence for the new customizations for the page
209: SELECT MAX(comp_seq) + 1 INTO pageStartSeq
210: FROM jdr_components
206: regionEndSeq jdr_components.comp_seq%TYPE;
207: BEGIN
208: -- Get the starting sequence for the new customizations for the page
209: SELECT MAX(comp_seq) + 1 INTO pageStartSeq
210: FROM jdr_components
211: WHERE comp_docid = pageCustDocID;
212:
213: -- Get the number of components which need to be added from the region
214: SELECT MAX(comp_seq) INTO regionEndSeq
211: WHERE comp_docid = pageCustDocID;
212:
213: -- Get the number of components which need to be added from the region
214: SELECT MAX(comp_seq) INTO regionEndSeq
215: FROM jdr_components
216: WHERE comp_docid = regionCustDocID;
217:
218: addComponents(pageCustDocID,
219: pageStartSeq,
233: -- extendingRegion Component ID of the extending region
234: -- viewID ID of the view
235: PROCEDURE appendView(pageCustDocID jdr_paths.path_docid%TYPE,
236: regionCustDocID jdr_paths.path_docid%TYPE,
237: extendingRegion jdr_components.comp_id%TYPE,
238: viewID jdr_components.comp_id%TYPE)
239: IS
240: pageStartSeq jdr_components.comp_seq%TYPE;
241: pageEndSeq jdr_components.comp_seq%TYPE;
234: -- viewID ID of the view
235: PROCEDURE appendView(pageCustDocID jdr_paths.path_docid%TYPE,
236: regionCustDocID jdr_paths.path_docid%TYPE,
237: extendingRegion jdr_components.comp_id%TYPE,
238: viewID jdr_components.comp_id%TYPE)
239: IS
240: pageStartSeq jdr_components.comp_seq%TYPE;
241: pageEndSeq jdr_components.comp_seq%TYPE;
242: pageCompLevel jdr_components.comp_level%TYPE;
236: regionCustDocID jdr_paths.path_docid%TYPE,
237: extendingRegion jdr_components.comp_id%TYPE,
238: viewID jdr_components.comp_id%TYPE)
239: IS
240: pageStartSeq jdr_components.comp_seq%TYPE;
241: pageEndSeq jdr_components.comp_seq%TYPE;
242: pageCompLevel jdr_components.comp_level%TYPE;
243: regionStartSeq jdr_components.comp_seq%TYPE;
244: regionEndSeq jdr_components.comp_seq%TYPE;
237: extendingRegion jdr_components.comp_id%TYPE,
238: viewID jdr_components.comp_id%TYPE)
239: IS
240: pageStartSeq jdr_components.comp_seq%TYPE;
241: pageEndSeq jdr_components.comp_seq%TYPE;
242: pageCompLevel jdr_components.comp_level%TYPE;
243: regionStartSeq jdr_components.comp_seq%TYPE;
244: regionEndSeq jdr_components.comp_seq%TYPE;
245: regionCompLevel jdr_components.comp_level%TYPE;
238: viewID jdr_components.comp_id%TYPE)
239: IS
240: pageStartSeq jdr_components.comp_seq%TYPE;
241: pageEndSeq jdr_components.comp_seq%TYPE;
242: pageCompLevel jdr_components.comp_level%TYPE;
243: regionStartSeq jdr_components.comp_seq%TYPE;
244: regionEndSeq jdr_components.comp_seq%TYPE;
245: regionCompLevel jdr_components.comp_level%TYPE;
246:
239: IS
240: pageStartSeq jdr_components.comp_seq%TYPE;
241: pageEndSeq jdr_components.comp_seq%TYPE;
242: pageCompLevel jdr_components.comp_level%TYPE;
243: regionStartSeq jdr_components.comp_seq%TYPE;
244: regionEndSeq jdr_components.comp_seq%TYPE;
245: regionCompLevel jdr_components.comp_level%TYPE;
246:
247: componentsAdded jdr_components.comp_seq%TYPE;
240: pageStartSeq jdr_components.comp_seq%TYPE;
241: pageEndSeq jdr_components.comp_seq%TYPE;
242: pageCompLevel jdr_components.comp_level%TYPE;
243: regionStartSeq jdr_components.comp_seq%TYPE;
244: regionEndSeq jdr_components.comp_seq%TYPE;
245: regionCompLevel jdr_components.comp_level%TYPE;
246:
247: componentsAdded jdr_components.comp_seq%TYPE;
248: BEGIN
241: pageEndSeq jdr_components.comp_seq%TYPE;
242: pageCompLevel jdr_components.comp_level%TYPE;
243: regionStartSeq jdr_components.comp_seq%TYPE;
244: regionEndSeq jdr_components.comp_seq%TYPE;
245: regionCompLevel jdr_components.comp_level%TYPE;
246:
247: componentsAdded jdr_components.comp_seq%TYPE;
248: BEGIN
249: -- Get the start sequence of the view
243: regionStartSeq jdr_components.comp_seq%TYPE;
244: regionEndSeq jdr_components.comp_seq%TYPE;
245: regionCompLevel jdr_components.comp_level%TYPE;
246:
247: componentsAdded jdr_components.comp_seq%TYPE;
248: BEGIN
249: -- Get the start sequence of the view
250: SELECT comp_seq, comp_level INTO regionStartSeq, regionCompLevel
251: FROM jdr_components
247: componentsAdded jdr_components.comp_seq%TYPE;
248: BEGIN
249: -- Get the start sequence of the view
250: SELECT comp_seq, comp_level INTO regionStartSeq, regionCompLevel
251: FROM jdr_components
252: WHERE comp_docid = regionCustDocID AND
253: comp_element = 'view' AND
254: comp_id = viewID;
255:
254: comp_id = viewID;
255:
256: -- Get the end sequence of the view
257: SELECT MIN(comp_seq) - 1 INTO regionEndSeq
258: FROM jdr_components
259: WHERE comp_docid = regionCustDocID AND
260: comp_seq > regionStartSeq AND
261: comp_level <= regionCompLevel;
262:
263: -- If this is the last view in the document, the end sequence will be the
264: -- last component in the document
265: IF (regionEndSeq IS NULL) THEN
266: SELECT MAX(comp_seq) INTO regionEndSeq
267: FROM jdr_components
268: WHERE comp_docid = regionCustDocID;
269: END IF;
270:
271: -- Check if this view already exists in the page. If so, we will need
272: -- to append the contents of the region view to the page view
273: BEGIN
274: -- Get the start sequence of the view for the page (if the view exists)
275: SELECT comp_seq, comp_level INTO pageStartSeq, pageCompLevel
276: FROM jdr_components
277: WHERE comp_docid = pageCustDocID AND
278: comp_element = 'view' AND
279: comp_id = viewID;
280:
279: comp_id = viewID;
280:
281: -- Get the end sequence of the view for the page (if the view exists)
282: SELECT MIN(comp_seq) - 1 INTO pageEndSeq
283: FROM jdr_components
284: WHERE comp_docid = pageCustDocID AND
285: comp_seq > pageStartSeq AND
286: comp_level <= pageCompLevel;
287:
288: -- If this is the last view in the document, the end sequence will be the
289: -- last component in the document
290: IF (pageEndSeq IS NULL) THEN
291: SELECT MAX(comp_seq) INTO pageEndSeq
292: FROM jdr_components
293: WHERE comp_docid = pageCustDocID;
294: END IF;
295:
296: EXCEPTION
297: WHEN NO_DATA_FOUND THEN
298: -- If the view does not exist in the page already, then we will append
299: -- the view to the end of the page customization document.
300: SELECT MAX(comp_seq) + 1 INTO pageStartSeq
301: FROM jdr_components
302: WHERE comp_docid = pageCustDocID;
303: END;
304:
305: IF (pageEndSeq IS NULL) THEN
319: -- to make room for the contents of the region view.
320: componentsAdded := regionEndSeq - regionStartSeq + 1;
321:
322: -- Shift the components to make room for the region view
323: UPDATE jdr_components
324: SET comp_seq = comp_seq + componentsAdded
325: WHERE comp_docid = pageCustDocID AND
326: comp_seq > pageEndSeq;
327:
691: WHERE atl_comp_docid = docID;
692:
693: CURSOR c_views(docID jdr_paths.path_docid%TYPE) IS
694: SELECT comp_id
695: FROM jdr_components
696: WHERE comp_docid = docID and
697: comp_element = 'view'
698: ORDER BY comp_seq;
699:
703: pageCustDocID jdr_paths.path_docid%TYPE;
704: regionBaseDocName VARCHAR2(512);
705: regionCustDocID jdr_paths.path_docid%TYPE;
706: regionBaseDocID jdr_paths.path_docid%TYPE;
707: custType jdr_components.comp_grouping%TYPE;
708: extendingRegion jdr_components.comp_id%TYPE;
709: viewID jdr_components.comp_id%TYPE;
710: pos1 INTEGER;
711: pos2 INTEGER;
704: regionBaseDocName VARCHAR2(512);
705: regionCustDocID jdr_paths.path_docid%TYPE;
706: regionBaseDocID jdr_paths.path_docid%TYPE;
707: custType jdr_components.comp_grouping%TYPE;
708: extendingRegion jdr_components.comp_id%TYPE;
709: viewID jdr_components.comp_id%TYPE;
710: pos1 INTEGER;
711: pos2 INTEGER;
712: tempStr VARCHAR2(1);
705: regionCustDocID jdr_paths.path_docid%TYPE;
706: regionBaseDocID jdr_paths.path_docid%TYPE;
707: custType jdr_components.comp_grouping%TYPE;
708: extendingRegion jdr_components.comp_id%TYPE;
709: viewID jdr_components.comp_id%TYPE;
710: pos1 INTEGER;
711: pos2 INTEGER;
712: tempStr VARCHAR2(1);
713: migrateCusts BOOLEAN := FALSE;
773: -- contains any references to the region
774: BEGIN
775: SELECT 'x' INTO tempStr FROM DUAL WHERE EXISTS (
776: SELECT *
777: FROM jdr_components, jdr_attributes
778: WHERE comp_docid = pageCustDocID AND
779: att_comp_docid = pageCustDocID AND
780: att_comp_seq = comp_seq AND
781: comp_element IN ('view', 'modify', 'move', 'insert', 'criterion') AND
783: (
784: att_value = extendingRegion OR
785: att_value LIKE extendingRegion||'.%' OR
786: att_value IN (SELECT comp_id
787: FROM jdr_components
788: WHERE comp_docid = regionBaseDocID AND
789: comp_id IS NOT NULL)
790: )
791: );
831: -- Customizations views and non-view customizations need to be
832: -- handled differently, since views are a little more complex.
833: -- Determine what type of customization document we are dealing with.
834: SELECT comp_grouping INTO custType
835: FROM jdr_components
836: WHERE comp_docid = regionCustDocID AND
837: comp_seq = 1;
838:
839: IF (custType = 'modifications') THEN