针对度量和出站事件值、触发器条件、入站事件过滤器等编写 XML 路径语言 (XPath) 表达式时,可以采用以下技巧和技术。
if (myMetric eq 'abc') then 100 else 0
if (inboundEvent_field eq 'sometext') then 100 else 0
myNumericMetric div 5
除法可用于数值类型(xs:integer 或 xs:decimal)和 xs:duration(用于将持续时间除以一个数或另一个持续时间)。StockTradeBPEL.BR.HT.InvalidTrades div StockTradeBPEL.BR.HT.TotalTrades
可编写为:if (StockTradeBPEL.BR.HT.TotalTrades ne 0) then StockTradeBPEL.BR.HT.InvalidTrades div StockTradeBPEL.BR.HT.TotalTrades else 0
if (myMetric eq 'abc') then xs:decimal(100) else ()
相对于直接使用秒表,您可以定义复制秒表值的持续时间度量。使用触发器定义何时复制值。您可以定义在有事件到达时触发的触发器,或者您可以使用模型中的现有触发器。 请不要定义度量的缺省值。定义以下度量值表达式:
if ( StopwatchA ne xs:dayTimeDuration( 'PT0S' ) ) then StopwatchA else MetricB
其中,StopwatchA 是秒表,而 MetricB 是度量。现在,您可以将最小聚集函数应用于 MetricB。Order_End_Time - Order_Start_Time
xs:string(Average_Process_Duration_KPI div xs:dayTimeDuration('P1D'))
Average_Process_Duration ge dayTimeDuration('P3DT1H')
| 引用的字段 | Description |
|---|---|
| orderTotal | 当前监控上下文中具有 orderTotal 标识的度量值 |
| timeSinceProcessStart | 当前监控上下文中具有 timeSinceProcessStart 标识的秒表 |
| itemContext/itemCost | 标识为 itemContext 的子监控上下文中具有 itemCost 标识的度量值 |
| ../orderNumber | 父监控上下文中具有 orderNumber 标识的度量值 |
| delayNotification/predefinedData/severity | 公共基本事件中预先定义的数据元素,该元素通过包含 delayNotification 标识的入站或出站事件定义来发送或接收 |
| delayNotification/extendedData/orderValue | 入站或出站公共基本事件中的扩展数据元素 |
| delayNotification/propertyData/cause | 入站或出站公共基本事件中的上下文数据元素 |
| Submit_Claim/createClaimResponse/app:claim/app:claimItem[@type="ACCIDENT"]/app:amount | 入站事件的属性,该事件包含基于 XML 模式定义 (XSD) 的事件部分 |
除之前显示的最后一个路径表达式之外的所有路径表达式都是相对路径(以标识开头),从对包含该引用的表达式求值所在的监控上下文导航。