为什么在 ReqLineItem.SupplierPartNumber 上似乎忽略了有效性条件?
Why a validity condition seems to be ignored on ReqLineItem.SupplierPartNumber?
对于如下所示的自定义,在编辑行项目时,永远不会触发有效性并且不会显示其错误消息。我什至可以通过按 OK 按钮(从而保存更改)从行项目退出到编辑请购单 header 什么应该被阻止。
<inClass name="ariba.purchasing.core.ReqLineItem">
<inField name="SupplierPartNumber">
<validity combine="and">
<context enclosingDocument="ariba.purchasing.core.Requisition"/>
<condition expression="false">
<parameter name="Message" value="Temporarily, this validity is always NOT valid."/>
</condition>
</validity>
</inField>
</inClass>
但是,当我按下 提交 按钮或 显示批准流程 时,预期的错误消息显示在 header 级别按钮。
如何使有效性在订单项上正常工作?
改为在值源设置有效性条件。
ReqLineItem.SupplierPartNumber
实际上是LineItemDescription.SupplierPartNumber
的别名。虽然它的可见性和可编辑性条件可以单独控制,但它的有效性条件是从原始字段转移过来的。这是合乎逻辑的,因为当通过别名共享内容时,它仍然必须保持相同的有效性规则。
答案:
- 在原始字段
LineItemDescription.SupplierPartNumber
实施有效性条件,它也适用于其别名
- 不要在别名
ReqLineItem.SupplierPartNumber
处使用有效性条件。这种用法在技术上是可行的,不会出现错误,但实际上会导致上述一些意外行为。
对于如下所示的自定义,在编辑行项目时,永远不会触发有效性并且不会显示其错误消息。我什至可以通过按 OK 按钮(从而保存更改)从行项目退出到编辑请购单 header 什么应该被阻止。
<inClass name="ariba.purchasing.core.ReqLineItem">
<inField name="SupplierPartNumber">
<validity combine="and">
<context enclosingDocument="ariba.purchasing.core.Requisition"/>
<condition expression="false">
<parameter name="Message" value="Temporarily, this validity is always NOT valid."/>
</condition>
</validity>
</inField>
</inClass>
但是,当我按下 提交 按钮或 显示批准流程 时,预期的错误消息显示在 header 级别按钮。
如何使有效性在订单项上正常工作?
改为在值源设置有效性条件。
ReqLineItem.SupplierPartNumber
实际上是LineItemDescription.SupplierPartNumber
的别名。虽然它的可见性和可编辑性条件可以单独控制,但它的有效性条件是从原始字段转移过来的。这是合乎逻辑的,因为当通过别名共享内容时,它仍然必须保持相同的有效性规则。
答案:
- 在原始字段
LineItemDescription.SupplierPartNumber
实施有效性条件,它也适用于其别名 - 不要在别名
ReqLineItem.SupplierPartNumber
处使用有效性条件。这种用法在技术上是可行的,不会出现错误,但实际上会导致上述一些意外行为。