Elemento OnEvent del interceptor
El elemento OnEvent describe un evento real que se asigna a la actividad de BAM envolvente.
Formato
El OnEvent
elemento contiene elementos secundarios que especifican un filtro de eventos, el identificador de correlación y, opcionalmente, qué datos se van a actualizar, hacer referencia a los datos y un token de continuación.
Atributos
Nombre del atributo | Descripción |
---|---|
Nombre | Nombre de este evento definido por el usuario. |
Source | Nombre del origen del evento tal como aparece en un elemento EventSource . |
IsBegin | Valor booleano que indica si el evento es el principio de una nueva actividad bam (true ) o no (false ). |
IsEnd | Valor booleano que indica si el evento es el final de una actividad bam (true ) o no (false ). |
Elementos secundarios
Estado de ejecución | Descripción |
---|---|
Filter | Proporciona una forma de limitar el evento de acuerdo con unos criterios específicos. |
CorrelationID | Especifica el Id. de correlación (el Id. de instancia de actividad). |
ContinuationToken | Especifica el token de continuación, un Id. de correlación que utilizarán eventos futuros que contribuirán a la misma instancia de actividad. |
Actualizar | Especifica los datos que se van a extraer del evento y que se van a importar a la actividad de BAM. |
Referencia | Agrega una relación a una actividad de BAM. |
Comentarios
Ejemplo
En el ejemplo siguiente se muestra un bloque OnEvent típico para WF:
<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>
En este ejemplo se muestra un bloque OnEvent típico para el servicio WCF:
<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>