OnEvent元素描述一個對應至封入 BAM 活動的實際事件。
格式
元素 OnEvent 包含子項目,可指定事件篩選準則、相互關聯識別碼,以及選擇性地更新、參考資料和接續權杖的資料。
屬性
| 屬性名稱 | 描述 |
|---|---|
| 名稱 | 此事件的使用者定義名稱。 |
| 來源 | 事件來源出現在 EventSource 專案中的名稱。 |
| IsBegin | 布林值,指出事件是否為新 BAM 活動的開頭, () true () false 。 |
| IsEnd | 布林值,指出事件是否為 BAM 活動的結尾, true () () false 。 |
子元素
| 執行狀態 | 描述 |
|---|---|
| Filter | 提供限制事件符合特定準則的方法。 |
| CorrelationID | 指定關聯識別碼 (活動執行個體識別碼)。 |
| ContinuationToken | 指定接續 Token,也就是日後會導致相同活動執行個體的事件所使用的相互關聯識別碼。 |
| 更新 | 指定資料要從事件中加以擷取,並且匯入至 BAM 活動。 |
| 參考 | 將關係加入至 BAM 活動。 |
備註
範例
下列範例顯示 WF 的典型 OnEvent 區塊:
<ic:OnEvent Name="BeginAct" IsBegin="true" Source="ResWF">
<ic:Filter>
<ic:Expression>
<wf:Operation Name="GetActivityName"/>
<ic:Operation Name="Constant">
<ic:Argument>FoodAndDrinksPolicy</ic:Argument>
</ic:Operation>
<ic:Operation Name="Equals"/>
<wf:Operation Name="GetActivityEvent"/>
<ic:Operation Name="Constant">
<ic:Argument>Closed</ic:Argument>
</ic:Operation>
<ic:Operation Name="Equals"/>
<ic:Operation Name="And"/>
</ic:Expression>
</ic:Filter>
<ic:CorrelationID>
<ic:Expression>
<wf:Operation Name="GetContextProperty">
<wf:Argument>InstanceId</wf:Argument>
</wf:Operation>
</ic:Expression>
</ic:CorrelationID>
<ic:Update DataItemName="StartOrderProcessing" Type="DATETIME">
<ic:Expression>
<wf:Operation Name="GetContextProperty">
<wf:Argument>EventTime</wf:Argument>
</wf:Operation>
</ic:Expression>
</ic:Update>
<ic:Update DataItemName="FoodItem" Type="NVARCHAR">
<ic:Expression>
<wf:Operation Name="GetWorkflowProperty">
<wf:Argument>foodItem</wf:Argument>
</wf:Operation>
</ic:Expression>
</ic:Update>
</ic:OnEvent>
此範例顯示 WCF 服務的一般 OnEvent 區塊:
<ic:OnEvent IsBegin="true" IsEnd ="false" Name ="AuthorizationRequestService" Source="ESCreditCardService">
<ic:Filter>
<ic:Expression>
<wcf:Operation Name="GetServiceContractCallPoint"/>
<ic:Operation Name ="Constant">
<ic:Argument>ServiceRequest</ic:Argument>
</ic:Operation>
<ic:Operation Name ="Equals"/>
<wcf:Operation Name="GetOperationName" />
<ic:Operation Name="Constant">
<ic:Argument>AuthorizeWithDataContract</ic:Argument>
</ic:Operation>
<ic:Operation Name ="Equals" />
<ic:Operation Name ="And" />
</ic:Expression>
</ic:Filter>
<ic:CorrelationID>
<ic:Expression>
<ic:Operation Name="Constant">
<ic:Argument>ServiceRequest</ic:Argument>
</ic:Operation>
</ic:Expression>
</ic:CorrelationID>
<ic:Update DataItemName="Name" Type="NVARCHAR">
<ic:Expression>
<wcf:Operation Name="XPath">
<wcf:Argument>//s:Body/ccservice:*/ccservice:creditCard/creditcard:FirstName</wcf:Argument>
</wcf:Operation>
<wcf:Operation Name="XPath">
<wcf:Argument>//s:Body/ccservice:*/ccservice:creditCard/creditcard:LastName</wcf:Argument>
</wcf:Operation>
<ic:Operation Name ="Concatenate"/>
</ic:Expression>
</ic:Update>
</ic:OnEvent>