1 package ame_rule_pkg as
2 /* $Header: ameorule.pkh 120.1 2006/09/07 13:03:27 pvelugul noship $ */
3 /* types */
4 type ruleActionRecord is record(
5 rule_key ame_rules.rule_key%type,
6 rule_id ame_rules.rule_id%type,
7 rule_type ame_rules.rule_type%type,
8 rule_description ame_rules.description%type,
9 usage_start_date ame_rule_usages.start_date%type,
10 usage_end_date ame_rule_usages.end_date%type,
11 priority ame_rule_usages.priority%type,
12 item_class_id ame_rules.item_class_id%type,
13 approver_category ame_rule_usages.approver_category%type);
14 type ruleActionRecordTable is table of ruleActionRecord index by binary_integer;
15 emptyRuleActionRecordTable ruleActionRecordTable;
16 /* functions */
17 function allOrdinaryConditionsDeleted(conditionIdListIn in ame_util.idList,
18 deletedListIn in ame_util.stringList) return boolean;
19 function appHasRules(applicationIdIn in integer) return boolean;
20 function bothSeededLMActionTypesChosen(actionTypeIdsIn in ame_util.idList) return boolean;
21 function bothSeededLMActionTypesChosen2(ruleIdIn in integer,
22 actionTypeIdsIn in ame_util.idList) return boolean;
23 function deletedAllExceptionConditions(conditionIdListIn in ame_util.idList,
24 deletedListIn in ame_util.stringList) return boolean;
25 function descriptionInUse(descriptionIn in varchar2) return boolean;
26 function finalAuthorityActionType(actionTypeIdsIn in ame_util.idList) return boolean;
27 function finalAuthorityActionType2(ruleIdIn in integer) return boolean;
28 function getApproverCategory(ruleIdIn in integer,
29 applicationIdIn in integer,
30 usageStartDateIn in date) return varchar2;
31 function getConditionCount(ruleIdIn in integer) return integer;
32 function getLMConditionId(ruleIdIn in integer) return integer;
33 function getDescription(ruleIdIn in integer,
34 processingDateIn in date default null) return varchar2;
35 function getEndDate(ruleIdIn in integer) return date;
36 function getEffectiveEndDateUsage(applicationIdIn in integer,
37 ruleIdIn in integer,
38 effectiveDateIn in date) return date;
39 function getEffectiveStartDateUsage(applicationIdIn in integer,
40 ruleIdIn in integer,
41 effectiveDateIn in date) return date;
42 function getItemClassId(ruleIdIn in integer,
43 processingDateIn in date default null) return integer;
44 function getUsageEndDate(ruleIdIn in integer,
45 applicationIdIn in integer,
46 processingDateIn in date) return varchar2;
47 function getId(typeIn in varchar2,
48 conditionIdListIn in ame_util.idList,
49 actionIdListIn in ame_util.idList) return integer;
50 function ruleKeyExists (ruleKeyIn in varchar2) return boolean;
51 function getNextRuleKey return varchar2;
52 function getRuleKey(ruleIdIn in integer,
53 processingDateIn in date default null) return varchar2;
54 function getItemId(ruleIdIn in integer) return integer;
55 function getOrganizationName(organizationIdIn in integer) return varchar2;
56 function getPriority(ruleIdIn in integer,
57 applicationIdIn in integer,
58 usageStartDateIn in date) return varchar2;
59 function getRulePriorityMode(applicationIdIn in integer,
60 ruleTypeIn in varchar2) return varchar2;
61 /*
62 AME_STRIPING
63 function getRuleStripeSetId(ruleIdIn in integer) return integer;
64 */
65 function getRuleType(ruleIdIn in integer,
66 processingDateIn in date default null) return integer;
67 function getRuleTypeLabel(ruleTypeIn in integer) return varchar2;
68 function getRuleTypeLabel2(ruleTypeIn in integer) return varchar2;
69 function getStartDate(ruleIdIn in integer) return date;
70 function getSubItemClassId(ruleIdIn in integer) return integer;
71 function getUsageStartDate(ruleIdIn in integer,
72 applicationIdIn in integer,
73 processingDateIn in date) return varchar2;
74 function getType(ruleIdIn in integer) return integer;
75 function getVersionStartDate(ruleIdIn integer) return varchar2;
76 function hasATUsageForRuleType2(ruleTypeIn in integer,
77 actionIdsIn in ame_util.idList) return boolean;
78 function hasATUsageForRuleType(ruleTypeIn in integer,
79 actionTypeIdsIn in ame_util.idList) return boolean;
80 function hasExceptionCondition(conditionIdsIn in ame_util.idList) return boolean;
81 function hasListModCondition(conditionIdsIn in ame_util.idList) return boolean;
82 function hasNonProductionActions(actionIdsIn in ame_util.idList) return boolean;
83 function hasNonProductionActionTypes(actionTypeIdsIn in ame_util.idList) return boolean;
84 function hasListModCondition2(ruleIdIn in integer) return boolean;
85 function hasSubOrListModAction(ruleIdIn in integer) return boolean;
86 function isAtLeastOneICAttrSelected(itemClassIdIn in integer,
87 attributeIdsIn in ame_util.idList) return boolean;
88 function isAtLeastOneICCondSelected(itemClassIdIn in integer,
89 conditionIdsIn in ame_util.idList) return boolean;
90 function isInUse(ruleIdIn in integer) return boolean;
91 function isInUseByOtherApps(ruleIdIn in integer,
92 applicationIdIn in integer) return boolean;
93 function lastConditionDeleted(conditionIdListIn in ame_util.idList,
94 deletedListIn in ame_util.stringList) return boolean;
95 function lineItemJobLevelChosen(actionTypeIdsIn in ame_util.idList) return boolean;
96 function new(applicationIdIn in integer,
97 typeIn in integer,
98 conditionIdsIn in ame_util.idList default ame_util.emptyIdList,
99 actionIdsIn in ame_util.idList,
100 ruleKeyIn in varchar2,
101 descriptionIn in varchar2,
102 startDateIn in date,
103 endDateIn in date default null,
104 ruleIdIn in integer default null,
105 itemClassIdIn in integer default null,
106 finalizeIn in boolean default true,
107 processingDateIn in date default null) return integer;
108 function newRuleUsage(itemIdIn in integer,
109 ruleIdIn in integer,
110 startDateIn in date,
111 endDateIn in date default null,
112 categoryIn in varchar2 default null,
113 priorityIn in varchar2 default null,
114 finalizeIn in boolean default false,
115 parentVersionStartDateIn in date,
116 processingDateIn in date default null,
117 updateParentObjectIn in boolean default false) return boolean;
118 function nonFinalAuthorityActionType(actionTypeIdsIn in ame_util.idList) return boolean;
119 function nonFinalAuthorityActionType2(ruleIdIn in integer) return boolean;
120 function ordinaryConditionsExist(ruleIdIn in integer) return boolean;
121 function ruleAlreadyExistsForTransType(typeIn in varchar2,
122 conditionIdListIn in ame_util.idList,
123 actionIdListIn in ame_util.idList,
124 applicationIdIn in integer,
125 itemClassIdIn in integer default null) return boolean;
126 function ruleExists(typeIn in varchar2,
127 conditionIdListIn in ame_util.idList,
128 actionIdListIn ame_util.idList,
129 itemClassIdIn in integer default null) return boolean;
130 function subordinateICCondExist(ruleIdIn in integer) return boolean;
131 function useRulePriorityMode(applicationIdIn in integer,
132 ruleTypeIn in varchar2) return boolean;
133 /* procedures */
134 procedure change(ruleIdIn in integer,
135 typeIn in integer default null,
136 conditionIdsIn in ame_util.idList default ame_util.emptyIdList,
137 actionIdsIn in ame_util.idList default ame_util.emptyIdList,
138 deleteListIn in ame_util.stringList default ame_util.emptyStringList,
139 descriptionIn in varchar2 default null,
140 applicationIdIn in integer default null,
141 parentVersionStartDateIn in date,
142 finalizeIn in boolean default false,
143 processingDateIn in date default null);
144 procedure changeUsage(ruleIdIn in integer,
145 applicationIdIn in integer,
146 priorityIn in varchar2,
147 categoryIn in varchar2,
148 parentVersionStartDateIn in date,
149 oldStartDateIn in date,
150 oldEndDateIn in date default null,
151 startDateIn in date default null,
152 endDateIn in date default null,
153 finalizeIn in boolean default false,
154 processingDateIn in date default null);
155 /*
156 AME_STRIPING
157 procedure changeRuleStripe(ruleIdIn in integer,
158 oldStripeSetIdIn in integer,
159 newStripeSetIdIn in integer);
160 procedure dropRuleStripeSet(ruleIdIn in integer,
161 applicationIdIn in integer,
162 finalizeIn in boolean default false);
163 procedure getAppRuleList(applicationIdIn in integer,
164 stripeSetIdIn in integer default null,
165 isStripingIn in varchar2,
166 ruleListOut out nocopy ame_rule_pkg.ruleActionRecordTable);
167 */
168 procedure getActionIds(ruleIdIn in integer,
169 actionIdListOut out nocopy ame_util.idList);
170 procedure getActions(ruleIdIn in integer,
171 actionIdsOut out nocopy ame_util.idList,
172 actionDescriptionsOut out nocopy ame_util.longStringList);
173 procedure getActions2(ruleIdIn in integer,
174 actionTypeIdIn in integer,
175 actionIdsOut out nocopy ame_util.stringList,
176 actionDescriptionsOut out nocopy ame_util.stringList);
177 procedure getAppRuleList(applicationIdIn in integer,
178 ruleListOut out nocopy ame_rule_pkg.ruleActionRecordTable);
179 procedure getAppRuleList2(applicationIdIn in integer,
180 applicationIdToShareIn in integer,
181 ruleIdListOut out nocopy ame_util.stringList,
182 ruleDescriptionListOut out nocopy ame_util.stringList);
183 procedure getConditionIds(ruleIdIn in integer,
184 conditionIdListOut out nocopy ame_util.idList);
185 procedure getConditions(ruleIdIn in integer,
186 conditionListOut out nocopy ame_util.stringList,
187 conditionIdListOut out nocopy ame_util.idList);
188 procedure getDetailUrls(ruleIdsIn in ame_util.idList,
189 applicationIdIn in integer,
190 usageEndDatesIn in ame_util.dateList default ame_util.emptyDateList,
191 usageStartDatesIn in ame_util.dateList,
192 detailUrlsOut out nocopy ame_util.longStringList);
193 procedure getOrdinaryAttributeIds(ruleIdIn in integer,
194 attributeIdListOut out nocopy ame_util.idList);
195 procedure getRequiredAttributes(ruleIdIn in integer,
196 attributeIdsOut out nocopy ame_util.idList);
197 procedure getRuleAppUsages(ruleIdIn in integer,
198 transactionTypeDescriptionsOut out nocopy ame_util.stringList);
199 procedure getRuleUsages(ruleIdIn in integer,
200 applicationIdsOut out nocopy ame_util.idList,
201 prioritiesOut out nocopy ame_util.stringList);
202 /*
203 AME_STRIPING
204 procedure getStripeSetRules(stripeSetIdIn in integer,
205 ruleIdsOut out nocopy ame_util.idList);
206 procedure getStripeSets(ruleIdIn in integer,
207 effectiveRuleDateIn in date default sysdate,
208 stripeSetIdsOut out nocopy ame_util.idList);
209 */
210 procedure getTransTypeItemClasses(applicationIdIn in integer,
211 itemClassIdIn in integer,
212 itemClassIdsOut out nocopy ame_util.stringList,
213 itemClassNamesOut out nocopy ame_util.stringList);
214 procedure getTypedConditions(ruleIdIn in integer,
215 conditionTypeIn in varchar2,
216 conditionIdsOut out nocopy ame_util.idList);
217 procedure getTypedConditions2(ruleIdIn in integer,
218 conditionTypeIn in varchar2,
219 conditionListOut out nocopy ame_util.longStringList,
220 conditionIdsOut out nocopy ame_util.idList);
221 /*
222 AME_STRIPING
223 procedure newRuleStripeSet(applicationIdIn in integer,
224 ruleIdIn in integer,
225 stripeSetIdIn in integer);
226 */
227 procedure remove(ruleIdIn in integer,
228 finalizeIn in boolean default true,
229 processingDateIn in date default null);
230 /*
231 AME_STRIPING
232 procedure removeRuleStripeSet(stripeSetIdsIn in ame_util.idList default ame_util.emptyIdList,
233 ruleIdIn in integer default null,
234 finalizeIn in boolean default false);
235 */
236 procedure removeUsage(ruleIdIn in integer,
237 itemIdIn in integer,
238 usageStartDateIn in date,
239 parentVersionStartDateIn in date,
240 finalizeIn in boolean default true,
241 processingDateIn in date default null);
242 /*
243 AME_STRIPING
244 procedure updateRuleStripeSets(applicationIdIn in integer,
245 ruleIdIn in integer,
246 conditionIdsIn in ame_util.idList,
247 finalizeIn in boolean default false);
248 */
249 end ame_rule_pkg;