其他疑难解答

对于使用 CheckLeadingZeroesInElement 方法验证消息验证策略中的字段的字段,不执行前导零验证。

症状

如果在字段中提交带有前导零的消息,则不会返回 BRE 验证错误,即使不允许字段使用前导零,并且验证策略包含执行此验证的字段的规则。

可能的原因

CheckLeadingZeroInElement 方法包含在邮件类型的验证策略的业务规则中。 不推荐使用此方法。 函数调用的目的是在函数调用中提供的元素中存在前导零时导致验证失败。 但是,即使 字段中有前导零,此方法也不会导致验证失败。

解决方案

如果要检查前导零,则必须实现 CheckLeadingZero 方法,而不是 CheckLeadingZeroInElement 方法。 如果函数的字符串输入中存在前导零,CheckLeadingZero 将导致验证错误。

若要实现 CheckLeadingZero 方法,必须创建一个自定义方法,该方法从自定义函数内部调用 CheckLeadingZero 方法,并将其作为字符串提供要验证的前导零的值。 这是因为 CheckLeadingZero 不会记录错误,而是在输入字符串不是有效的 SWIFT Number 字段或字符串输入具有前导零时只返回布尔值 False。 否则,它将返回 True。 然后,自定义方法可以相应地记录错误。

如果 SWIFT Number 字段具有前导零,则消息验证策略将返回错误

症状

如果在字段中使用前导零提交消息,即使字段允许前导零,也会返回 BRE 验证错误。

可能的原因

如果以下方法之一用于验证相关规则中的 SWIFT Number 字段(通常在规则的“操作”部分中),则可能会发生这种情况。 这可能发生在“金额”、“费率”、“价格”或“数量”字段中。

  • CheckCurrencyAmount

  • CheckValidAmount

  • CheckValidCurrencyAndPriceCode

  • CheckValidSignCurrencyAmount

  • CheckValidSignDateCurrencyAmount

  • CheckValidSignRate

  • IsValidTransactionDetailsCurrencyAmount

解决方案

如果在验证策略的规则中使用了上述列表中的任何方法( CheckValidSignRate 除外),请启用前导零,如 支持数量字段验证中的前导零中所述。

如果在返回此错误的规则中使用 CheckValidSignRate 方法,则支持前导零的唯一方法是从验证策略中删除此规则。 请按照以下步骤完成此操作:

  1. 在业务规则编辑器中,右键单击使用 CheckValidSignRate 方法包含规则的已部署策略的“版本”节点。 单击“ 取消部署”。

  2. 右键单击同一策略的 “版本 ”节点,然后单击“ 复制”。

  3. 右键单击同一策略 的Validation_Policy 节点,然后单击“ 粘贴”。

  4. 展开策略的新未保存版本。 右键单击具有 CheckValidSignRate 方法调用的规则,然后单击“ 删除”。

  5. 右键单击策略的新未保存 的“版本” 节点,然后单击“ 保存”。 右键单击同一个节点,然后单击“ 发布”。 右键单击同一个节点,然后单击“ 部署”。

A4SWIFT数据库需要存档

症状

A4SWIFT数据库增长过大。

可能的原因

A4SWIFT数据库中的历史记录表不会自动存档。 此表存储有关消息修复和新提交的数据,包括执行哪些任务的人员以及有关业务流程过程的数据。 在执行邮件修复和新提交操作时,此表将继续增加。

解决方案

若要限制A4SWIFT数据库的增长,请使用标准存档过程,定期将数据存档到历史记录表外。

另请参阅

疑难解答:问题和解决方法