Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Este tema es aplicable a Windows Workflow Foundation 4.
Este ejemplo amplía el ejemplo de directiva simple. Además de las reglas de descuento residencial y descuento comercial del ejemplo de directiva simple, se han agregado varias nuevas reglas.
Se agrega una regla de valor alto, que proporciona un descuento mayor para los pedidos de valor alto. Se le proporciona un valor de prioridad menor que el de las dos reglas anteriores, para que sobrescriba el campo de descuento y tenga prioridad sobre la regla de descuento residencial o la de descuento comercial.
También se agrega una regla de cálculo del total, que calcula el total en función del nivel de descuento. Muestra cómo hacer referencia a un método definido en la actividad de flujo de trabajo, y cómo utilizar las acciones Else. Esta regla también muestra el comportamiento del encadenamiento, puesto que se evaluará siempre que cambie el campo de descuento. Además, se muestra la atribución de método con RuleWriteAttribute en el método CalculateTotal. Esto hace que las reglas afectadas (ErrorTotalRule) se vuelvan a evaluar siempre que se ejecuta el método.
La última regla agregada es la que detecta errores (en este caso, Total menor que 0). Si ocurre esto, se detiene la ejecución de la directiva.
Finalmente, se agregan llamadas a Console.Writeline como acciones a cada regla para proporcionar más visibilidad de la ejecución de las reglas, a la vez que se muestra que es posible tener acceso a los métodos estáticos en tipos a los que se hace referencia. También podría utilizar el seguimiento para obtener visibilidad en las reglas que se ejecutan (vea el ejemplo de RuleActionTrackingEvent).
Este ejemplo hace uso de las clases siguientes.
ResidentialDiscountRule:
IF OrderValue > 500 AND CustomerType = Residential
THEN Discount = 5%
BusinessDiscountRule:
IF OrderValue > 10000 AND CustomerType = Business
THEN Discount = 10%
HighValueDiscountRule:
IF OrderValue > 20000
THEN Discount = 15%
TotalRule:
IF Discount > 0
THEN CalculateTotal(OrderValue, Discount)
ELSE Total = OrderValue
ErrorTotalRule:
IF Total < 0
THEN Error = "Fired ErrorTotalRule"; Halt
La evaluación y ejecución de las reglas también se puede ver mediante la traza y el seguimiento. Para obtener más información, vea RuleActionTrackingEvent Sample.
Para compilar el ejemplo
Descargue el ejemplo haciendo clic en Descargar ejemplo en este tema.
Así se extrae el proyecto de ejemplo en el disco duro local.
Haga clic en Inicio, señale Programas, señale Microsoft Windows SDK y, a continuación, haga clic en CMD Shell.
Vaya al directorio de origen del ejemplo.
En el símbolo del sistema, escriba MSBUILD <nombre del archivo de solución>.
Para ejecutar el ejemplo
- En la ventana del símbolo del sistema del SDK, ejecute el archivo .exe de la carpeta AdvancedPolicy\bin\debug (o la carpeta AdvancedPolicy\bin para la versión de Visual Basic del ejemplo), que se encuentra debajo de la carpeta principal del ejemplo.
![]() |
---|
Puede que los ejemplos ya estén instalados en su equipo. Compruebe el siguiente directorio (valor predeterminado) antes de continuar.
<unidadDeInstalación>:\WF_WCF_Samples
Si no existe este directorio, vaya a la página de ejemplos de Windows Communication Foundation (WCF) y Windows Workflow Foundation (WF) Samples para .NET Framework 4 para descargar todos los ejemplos de Windows Communication Foundation (WCF) y WF. Este ejemplo se encuentra en el siguiente directorio.
<unidadDeInstalación>: \WF_WCF_Samples\WF\Basic\Rules\Policy\AdvancedPolicy
|
Vea también
Referencia
Otros recursos
Simple Policy Sample
Tutorial: Use Rules and Conditions
Using the PolicyActivity Activity
Activities Samples
Windows Workflow Foundation Samples