本主题仅适用于 IBM Business Automation Workflow Advanced 配置。

异常处理

Draft comment:
This topic only applies to BAW, and is located in the BAW repository. Last updated on 2025-01-20 10:38
对工件调用验证或发布工件时可能发生异常。 发生验证错误时,系统会抛出 ValidationException 并附带问题列表。 如果发布期间因为另一事务发布相同工件而导致问题,那么系统会抛出 ChangeConflictException。 每当检测到另一个事务正在更改工件时,就会抛出 ChangeConflictException 异常。

如果尝试更改一个与系统属性名称重复的属性,那么将抛出 SystemPropertyNotChangeableException。 系统属性不能更改。

如果在发布工件时尝试对该工件执行设置操作,那么会抛出 ChangesNotAllowedException

图 1. BusinessRuleManagementException 和相关类的类图

业务规则组问题

验证业务规则组或尝试发布业务规则组但此业务规则组部分无效时可能发生的问题。

表 1. 业务规则组问题
异常 描述
ProblemBusRuleNotInAvailTargetList 某个规则被指定为操作选择表的缺省业务规则,但规则工件不在该操作的可用目标列表中时,发生此问题。 应指定操作的可用目标列表中的有效业务规则以避免此问题。
ProblemDuplicatePropertyName 尝试创建的属性与业务规则组上的系统属性或用户定义属性重复时,发生此问题。 应使用唯一属性名以避免此问题。
ProblemOperationContainsNoTargets 操作没有缺省规则目标或未设置任何预定规则目标时,发生此问题。 设置此操作时应将至少一个规则目标作为缺省目标或在预定时间设置此操作以避免此问题。
ProblemOverlappingRanges 操作选择记录的开始日期或结束日期与另一操作选择记录开始日期和结束日期的范围重叠时,发生此问题。 日期范围重叠会导致业务规则运行时找不到正确的要调用的规则目标。 应检查操作的另一操作选择记录的开始日期或结束日期以确保没有重叠来避免此问题。
ProblemStartDateAfterEndDate 操作选择记录的开始日期在该选择记录的结束日期之后时,发生此问题。 任何操作选择记录都可能发生此问题,但没有开始日期或结束日期的缺省记录除外。 对操作选择记录指定结束日期之前的开始日期以避免此问题。
ProblemTargetBusRuleNotSet 操作选择记录指定的规则不在可用目标规则列表中时,发生此问题。 应指定可用目标列表中的规则以避免此问题。
ProblemTNSAndNameAlreadyInUse 创建新业务规则时使用的目标名称空间和名称已被某个规则集或决策表使用时,发生此问题。 应检查与当前业务规则组及存储库中存储的任何规则工件相关联的所有规则集和决策表。 应使用不同目标名称空间或名称以避免此问题。
ProblemWrongOperationForOpSelectionRecord 新操作选择记录添加至操作选择记录列表并且新记录的操作与对应列表中的记录的操作不匹配时,发生此问题。 应该使用正确操作选择记录列表对象上的方法来创建新操作,以避免此问题。

规则集和决策表问题

表 2. 规则集和决策表问题
异常 描述
ProblemInvalidBooleanValue 对于类型为布尔值的参数,规则集中的规则模板或者决策表中的操作值或条件值的参数接收到“true”或“false”以外的值时,发生此问题。 不正确参数值的示例为“T”或“F”。 处理类型为布尔值的参数时使用值“true”或“false”以避免此问题。
ProblemParmNotDefinedInTemplate 对模板参数指定值并且未在模板的有效参数列表中定义该参数时发生的问题。 在模板中设置之前应检查这些参数。 RuleTemplate、TreeActionValueTemplate 或 TreeConditionValueTemplate 模板可能出现此问题。
ProblemParmValueListContainsUnexpectedValue 使用模板传递有效参数时发生的问题(此参数有太多参数)。 参数数目应减少。 RuleTemplate、TreeActionValueTemplate 或 TreeConditionValueTemplate 模板可能出现此问题。
ProblemRuleBlockContainsNoRules 除去规则集的规则块中的所有规则并尝试验证或发布此规则集时发生此问题。 规则集中的规则块必须至少有一个值。
ProblemTemplateNotAssociatedWithRuleSet 尝试向规则集添加规则并且未使用该规则定义用于创建该规则的模板时发生的问题。 创建新规则时,应使用在该规则集中定义的模板以避免此问题。
ProblemRuleNameAlreadyInUse 尝试向规则块添加规则并且该规则与规则块中的现有规则同名时发生的问题。 添加新规则之前应检查规则名称以避免此问题。
ProblemTemplateParameterNotSpecified 如果针对决策表中的规则集中的规则、操作或条件值更新模板时未包括参数,那么会发生此问题。 应指定模板的所有参数以避免此问题。
ProblemTypeConversionError 模板的参数无法转换为适当类型时会发生此问题。所有参数被视为字符串对象并转换为参数类型(boolean、byte、short、int、long、float 和 double)。 如果参数值字符串无法转换为此参数的指定类型,那么会发生此错误。 为避免此问题,应指定可转换为参数类型的字符串(boolean、byte、short、int、long、float 和 double)。
ProblemValueViolatesParmConstraints 参数不在已在其模板中定义的值的枚举或范围内时,会发生此问题。 参数受规则集中的规则模板、决策表中的操作值或条件值模板中的枚举或范围限制时,可能发生此问题。 应使用枚举内的值以避免此问题。
ProblemInvalidActionValueTemplate 尝试在树操作中对值定义设置模板实例但对应模板对该树操作不可用时发生的问题。 使用正确模板以在树操作中创建值定义,从而避免此问题。
ProblemInvalidConditionValueTemplate 尝试在 Case Edge 中对条件定义设置模板实例但对应模板对该 Case Edge 不可用时发生的问题。 使用正确模板以在 Case Edge 中创建条件定义,从而避免此问题。
ProblemTreeActionIsNull 已创建新条件值但未使用模板实例设置操作时,会发生此问题。 使用来自ActionNode,创建一个新的模板实例并将其设置在列表中。