108:
109: function CALCULATE_USE_COUNT(X_ATTRIBUTE_ID ame_attribute_usages.attribute_id%type
110: ,X_APPLICATION_ID ame_attribute_usages.application_id%type) return integer as
111: cursor RULE_CURSOR(X_APPLICATION_ID in integer) is
112: select AME_RULE_USAGES.RULE_ID, AME_RULES.ACTION_ID
113: from AME_RULES, AME_RULE_USAGES
114: where AME_RULES.RULE_ID = AME_RULE_USAGES.RULE_ID
115: and AME_RULE_USAGES.ITEM_ID = X_APPLICATION_ID
116: and ((sysdate between AME_RULES.START_DATE
109: function CALCULATE_USE_COUNT(X_ATTRIBUTE_ID ame_attribute_usages.attribute_id%type
110: ,X_APPLICATION_ID ame_attribute_usages.application_id%type) return integer as
111: cursor RULE_CURSOR(X_APPLICATION_ID in integer) is
112: select AME_RULE_USAGES.RULE_ID, AME_RULES.ACTION_ID
113: from AME_RULES, AME_RULE_USAGES
114: where AME_RULES.RULE_ID = AME_RULE_USAGES.RULE_ID
115: and AME_RULE_USAGES.ITEM_ID = X_APPLICATION_ID
116: and ((sysdate between AME_RULES.START_DATE
117: and nvl(AME_RULES.END_DATE - (1/86400), sysdate))
110: ,X_APPLICATION_ID ame_attribute_usages.application_id%type) return integer as
111: cursor RULE_CURSOR(X_APPLICATION_ID in integer) is
112: select AME_RULE_USAGES.RULE_ID, AME_RULES.ACTION_ID
113: from AME_RULES, AME_RULE_USAGES
114: where AME_RULES.RULE_ID = AME_RULE_USAGES.RULE_ID
115: and AME_RULE_USAGES.ITEM_ID = X_APPLICATION_ID
116: and ((sysdate between AME_RULES.START_DATE
117: and nvl(AME_RULES.END_DATE - (1/86400), sysdate))
118: or (sysdate < AME_RULES.START_DATE
112: select AME_RULE_USAGES.RULE_ID, AME_RULES.ACTION_ID
113: from AME_RULES, AME_RULE_USAGES
114: where AME_RULES.RULE_ID = AME_RULE_USAGES.RULE_ID
115: and AME_RULE_USAGES.ITEM_ID = X_APPLICATION_ID
116: and ((sysdate between AME_RULES.START_DATE
117: and nvl(AME_RULES.END_DATE - (1/86400), sysdate))
118: or (sysdate < AME_RULES.START_DATE
119: and AME_RULES.START_DATE < nvl(AME_RULES.END_DATE,
120: AME_RULES.START_DATE + (1/86400))))
113: from AME_RULES, AME_RULE_USAGES
114: where AME_RULES.RULE_ID = AME_RULE_USAGES.RULE_ID
115: and AME_RULE_USAGES.ITEM_ID = X_APPLICATION_ID
116: and ((sysdate between AME_RULES.START_DATE
117: and nvl(AME_RULES.END_DATE - (1/86400), sysdate))
118: or (sysdate < AME_RULES.START_DATE
119: and AME_RULES.START_DATE < nvl(AME_RULES.END_DATE,
120: AME_RULES.START_DATE + (1/86400))))
121: and ((sysdate between AME_RULE_USAGES.START_DATE
114: where AME_RULES.RULE_ID = AME_RULE_USAGES.RULE_ID
115: and AME_RULE_USAGES.ITEM_ID = X_APPLICATION_ID
116: and ((sysdate between AME_RULES.START_DATE
117: and nvl(AME_RULES.END_DATE - (1/86400), sysdate))
118: or (sysdate < AME_RULES.START_DATE
119: and AME_RULES.START_DATE < nvl(AME_RULES.END_DATE,
120: AME_RULES.START_DATE + (1/86400))))
121: and ((sysdate between AME_RULE_USAGES.START_DATE
122: and nvl(AME_RULE_USAGES.END_DATE - (1/86400), sysdate))
115: and AME_RULE_USAGES.ITEM_ID = X_APPLICATION_ID
116: and ((sysdate between AME_RULES.START_DATE
117: and nvl(AME_RULES.END_DATE - (1/86400), sysdate))
118: or (sysdate < AME_RULES.START_DATE
119: and AME_RULES.START_DATE < nvl(AME_RULES.END_DATE,
120: AME_RULES.START_DATE + (1/86400))))
121: and ((sysdate between AME_RULE_USAGES.START_DATE
122: and nvl(AME_RULE_USAGES.END_DATE - (1/86400), sysdate))
123: or (sysdate < AME_RULE_USAGES.START_DATE
116: and ((sysdate between AME_RULES.START_DATE
117: and nvl(AME_RULES.END_DATE - (1/86400), sysdate))
118: or (sysdate < AME_RULES.START_DATE
119: and AME_RULES.START_DATE < nvl(AME_RULES.END_DATE,
120: AME_RULES.START_DATE + (1/86400))))
121: and ((sysdate between AME_RULE_USAGES.START_DATE
122: and nvl(AME_RULE_USAGES.END_DATE - (1/86400), sysdate))
123: or (sysdate < AME_RULE_USAGES.START_DATE
124: and AME_RULE_USAGES.START_DATE < nvl(AME_RULE_USAGES.END_DATE,
147: if(TEMP_COUNT > 0) then
148: NEW_USE_COUNT := NEW_USE_COUNT + 1;
149: else
150: if(TEMPRULE.ACTION_ID is null) then
151: -- action_id is already migrated from ame_rules to ame_action_usages
152: select count(*)
153: into TEMP_COUNT
154: from
155: AME_MANDATORY_ATTRIBUTES,
174: into TEMP_COUNT
175: from
176: AME_MANDATORY_ATTRIBUTES,
177: AME_ACTIONS,
178: AME_RULES
179: where
180: AME_MANDATORY_ATTRIBUTES.ATTRIBUTE_ID = X_ATTRIBUTE_ID and
181: AME_MANDATORY_ATTRIBUTES.ACTION_TYPE_ID = AME_ACTIONS.ACTION_TYPE_ID and
182: AME_ACTIONS.ACTION_ID = AME_RULES.ACTION_ID and
178: AME_RULES
179: where
180: AME_MANDATORY_ATTRIBUTES.ATTRIBUTE_ID = X_ATTRIBUTE_ID and
181: AME_MANDATORY_ATTRIBUTES.ACTION_TYPE_ID = AME_ACTIONS.ACTION_TYPE_ID and
182: AME_ACTIONS.ACTION_ID = AME_RULES.ACTION_ID and
183: AME_RULES.RULE_ID = TEMPRULE.RULE_ID and
184: sysdate between AME_MANDATORY_ATTRIBUTES.START_DATE and
185: nvl(AME_MANDATORY_ATTRIBUTES.END_DATE - (1/86400), sysdate) and
186: sysdate between AME_ACTIONS.START_DATE and
179: where
180: AME_MANDATORY_ATTRIBUTES.ATTRIBUTE_ID = X_ATTRIBUTE_ID and
181: AME_MANDATORY_ATTRIBUTES.ACTION_TYPE_ID = AME_ACTIONS.ACTION_TYPE_ID and
182: AME_ACTIONS.ACTION_ID = AME_RULES.ACTION_ID and
183: AME_RULES.RULE_ID = TEMPRULE.RULE_ID and
184: sysdate between AME_MANDATORY_ATTRIBUTES.START_DATE and
185: nvl(AME_MANDATORY_ATTRIBUTES.END_DATE - (1/86400), sysdate) and
186: sysdate between AME_ACTIONS.START_DATE and
187: nvl(AME_ACTIONS.END_DATE - (1/86400), sysdate) and
184: sysdate between AME_MANDATORY_ATTRIBUTES.START_DATE and
185: nvl(AME_MANDATORY_ATTRIBUTES.END_DATE - (1/86400), sysdate) and
186: sysdate between AME_ACTIONS.START_DATE and
187: nvl(AME_ACTIONS.END_DATE - (1/86400), sysdate) and
188: ((sysdate between AME_RULES.START_DATE and
189: nvl(AME_RULES.END_DATE - (1/86400), sysdate)) or
190: (sysdate < AME_RULES.START_DATE and
191: AME_RULES.START_DATE < nvl(AME_RULES.END_DATE,
192: AME_RULES.START_DATE + (1/86400))));
185: nvl(AME_MANDATORY_ATTRIBUTES.END_DATE - (1/86400), sysdate) and
186: sysdate between AME_ACTIONS.START_DATE and
187: nvl(AME_ACTIONS.END_DATE - (1/86400), sysdate) and
188: ((sysdate between AME_RULES.START_DATE and
189: nvl(AME_RULES.END_DATE - (1/86400), sysdate)) or
190: (sysdate < AME_RULES.START_DATE and
191: AME_RULES.START_DATE < nvl(AME_RULES.END_DATE,
192: AME_RULES.START_DATE + (1/86400))));
193: end if;
186: sysdate between AME_ACTIONS.START_DATE and
187: nvl(AME_ACTIONS.END_DATE - (1/86400), sysdate) and
188: ((sysdate between AME_RULES.START_DATE and
189: nvl(AME_RULES.END_DATE - (1/86400), sysdate)) or
190: (sysdate < AME_RULES.START_DATE and
191: AME_RULES.START_DATE < nvl(AME_RULES.END_DATE,
192: AME_RULES.START_DATE + (1/86400))));
193: end if;
194: if(TEMP_COUNT > 0) then
187: nvl(AME_ACTIONS.END_DATE - (1/86400), sysdate) and
188: ((sysdate between AME_RULES.START_DATE and
189: nvl(AME_RULES.END_DATE - (1/86400), sysdate)) or
190: (sysdate < AME_RULES.START_DATE and
191: AME_RULES.START_DATE < nvl(AME_RULES.END_DATE,
192: AME_RULES.START_DATE + (1/86400))));
193: end if;
194: if(TEMP_COUNT > 0) then
195: NEW_USE_COUNT := NEW_USE_COUNT + 1;
188: ((sysdate between AME_RULES.START_DATE and
189: nvl(AME_RULES.END_DATE - (1/86400), sysdate)) or
190: (sysdate < AME_RULES.START_DATE and
191: AME_RULES.START_DATE < nvl(AME_RULES.END_DATE,
192: AME_RULES.START_DATE + (1/86400))));
193: end if;
194: if(TEMP_COUNT > 0) then
195: NEW_USE_COUNT := NEW_USE_COUNT + 1;
196: end if;
260: (AME_ACTIONS.END_DATE is null or sysdate < AME_ACTIONS.END_DATE))
261: union
262: select AME_MANDATORY_ATTRIBUTES.ATTRIBUTE_ID
263: from AME_MANDATORY_ATTRIBUTES,
264: AME_RULES,
265: AME_ACTIONS
266: where
267: AME_MANDATORY_ATTRIBUTES.ACTION_TYPE_ID = AME_ACTIONS.ACTION_TYPE_ID and
268: AME_ACTIONS.ACTION_ID = AME_RULES.ACTION_ID and
264: AME_RULES,
265: AME_ACTIONS
266: where
267: AME_MANDATORY_ATTRIBUTES.ACTION_TYPE_ID = AME_ACTIONS.ACTION_TYPE_ID and
268: AME_ACTIONS.ACTION_ID = AME_RULES.ACTION_ID and
269: AME_RULES.ACTION_ID is not null and
270: AME_RULES.RULE_ID = X_RULE_ID and
271: (AME_MANDATORY_ATTRIBUTES.START_DATE <= sysdate and
272: (AME_MANDATORY_ATTRIBUTES.END_DATE is null or sysdate < AME_MANDATORY_ATTRIBUTES.END_DATE)) and
265: AME_ACTIONS
266: where
267: AME_MANDATORY_ATTRIBUTES.ACTION_TYPE_ID = AME_ACTIONS.ACTION_TYPE_ID and
268: AME_ACTIONS.ACTION_ID = AME_RULES.ACTION_ID and
269: AME_RULES.ACTION_ID is not null and
270: AME_RULES.RULE_ID = X_RULE_ID and
271: (AME_MANDATORY_ATTRIBUTES.START_DATE <= sysdate and
272: (AME_MANDATORY_ATTRIBUTES.END_DATE is null or sysdate < AME_MANDATORY_ATTRIBUTES.END_DATE)) and
273: ((sysdate between AME_RULES.START_DATE and
266: where
267: AME_MANDATORY_ATTRIBUTES.ACTION_TYPE_ID = AME_ACTIONS.ACTION_TYPE_ID and
268: AME_ACTIONS.ACTION_ID = AME_RULES.ACTION_ID and
269: AME_RULES.ACTION_ID is not null and
270: AME_RULES.RULE_ID = X_RULE_ID and
271: (AME_MANDATORY_ATTRIBUTES.START_DATE <= sysdate and
272: (AME_MANDATORY_ATTRIBUTES.END_DATE is null or sysdate < AME_MANDATORY_ATTRIBUTES.END_DATE)) and
273: ((sysdate between AME_RULES.START_DATE and
274: nvl(AME_RULES.END_DATE - (1/86400), sysdate)) or
269: AME_RULES.ACTION_ID is not null and
270: AME_RULES.RULE_ID = X_RULE_ID and
271: (AME_MANDATORY_ATTRIBUTES.START_DATE <= sysdate and
272: (AME_MANDATORY_ATTRIBUTES.END_DATE is null or sysdate < AME_MANDATORY_ATTRIBUTES.END_DATE)) and
273: ((sysdate between AME_RULES.START_DATE and
274: nvl(AME_RULES.END_DATE - (1/86400), sysdate)) or
275: (sysdate < AME_RULES.START_DATE and
276: AME_RULES.START_DATE < nvl(AME_RULES.END_DATE,AME_RULES.START_DATE
277: + (1/86400)))) and
270: AME_RULES.RULE_ID = X_RULE_ID and
271: (AME_MANDATORY_ATTRIBUTES.START_DATE <= sysdate and
272: (AME_MANDATORY_ATTRIBUTES.END_DATE is null or sysdate < AME_MANDATORY_ATTRIBUTES.END_DATE)) and
273: ((sysdate between AME_RULES.START_DATE and
274: nvl(AME_RULES.END_DATE - (1/86400), sysdate)) or
275: (sysdate < AME_RULES.START_DATE and
276: AME_RULES.START_DATE < nvl(AME_RULES.END_DATE,AME_RULES.START_DATE
277: + (1/86400)))) and
278: (AME_ACTIONS.START_DATE <= sysdate and
271: (AME_MANDATORY_ATTRIBUTES.START_DATE <= sysdate and
272: (AME_MANDATORY_ATTRIBUTES.END_DATE is null or sysdate < AME_MANDATORY_ATTRIBUTES.END_DATE)) and
273: ((sysdate between AME_RULES.START_DATE and
274: nvl(AME_RULES.END_DATE - (1/86400), sysdate)) or
275: (sysdate < AME_RULES.START_DATE and
276: AME_RULES.START_DATE < nvl(AME_RULES.END_DATE,AME_RULES.START_DATE
277: + (1/86400)))) and
278: (AME_ACTIONS.START_DATE <= sysdate and
279: (AME_ACTIONS.END_DATE is null or sysdate < AME_ACTIONS.END_DATE));
272: (AME_MANDATORY_ATTRIBUTES.END_DATE is null or sysdate < AME_MANDATORY_ATTRIBUTES.END_DATE)) and
273: ((sysdate between AME_RULES.START_DATE and
274: nvl(AME_RULES.END_DATE - (1/86400), sysdate)) or
275: (sysdate < AME_RULES.START_DATE and
276: AME_RULES.START_DATE < nvl(AME_RULES.END_DATE,AME_RULES.START_DATE
277: + (1/86400)))) and
278: (AME_ACTIONS.START_DATE <= sysdate and
279: (AME_ACTIONS.END_DATE is null or sysdate < AME_ACTIONS.END_DATE));
280: ATTRIBUTE_IDS_LIST ame_util.idList;
315: ACA.END_DATE,
316: ACA.CREATED_BY,
317: ACA.CREATION_DATE
318: FROM AME_CALLING_APPS ACA,
319: AME_RULES AR,
320: AME_RULE_USAGES ARU,
321: AME_ACTION_USAGES AAU
322: WHERE ACA.APPLICATION_ID = ARU.ITEM_ID
323: AND ARU.RULE_ID = AR.RULE_ID