Reglas WF y CodeTypeReferenceExpression
Pregunta
Me moví algunas variables en grupos, a mi flujo de trabajo.
Por desgracia, ahora las reglas fallan, he estado tratando de establecer el tipo, pero siguen dando este error.
'ifRequestComplete' Actividad Error de validación: Propiedad "Condición" tiene un valor no válido. expresión de condición es válida. los Nombre del tipo especificado ( "Request, ApprovalWorkflow ") no puede ser resuelto.
sin el 'ns0: CodeTypeReferenceExpression type = ".." />' consigo este error
'ifRequestComplete' Actividad Error de validación: Propiedad "Condición" tiene un valor no válido. expresión de condición es válida. los campo "gReq" en el tipo de "ApprovalWorkflow.ApprovalFlow" hace no existe o no es accesible.
La clase de solicitud se crea en el espacio de nombres ApprovalWorkflow en el mismo proyecto que el flujo de trabajo, también llamado ApprovalWorkflow.
namespace ApprovalWorkflow
{
public class Request {...}
}
El archivo contiene este .rules
<RuleExpressionCondition Name="ifRequestComplete">
<RuleExpressionCondition.Expression>
<ns0:CodeBinaryOperatorExpression Operator="ValueEquality" xmlns:ns0="clr-namespace:System.CodeDom;Assembly=System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<ns0:CodeBinaryOperatorExpression.Left>
<ns0:CodeFieldReferenceExpression FieldName="StatusCode">
<ns0:CodeFieldReferenceExpression.TargetObject>
<ns0:CodeFieldReferenceExpression FieldName="gReq">
<ns0:CodeFieldReferenceExpression.TargetObject>
<ns0:CodeTypeReferenceExpression Type="Request, ApprovalWorkflow" />
<ns0:CodeThisReferenceExpression />
</ns0:CodeFieldReferenceExpression.TargetObject>
</ns0:CodeFieldReferenceExpression>
</ns0:CodeFieldReferenceExpression.TargetObject>
</ns0:CodeFieldReferenceExpression>
</ns0:CodeBinaryOperatorExpression.Left>
<ns0:CodeBinaryOperatorExpression.Right>
<ns0:CodePrimitiveExpression>
<ns0:CodePrimitiveExpression.Value>
<ns1:String xmlns:ns1="clr-namespace:System;Assembly=mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">COM</ns1:String>
</ns0:CodePrimitiveExpression.Value>
</ns0:CodePrimitiveExpression>
</ns0:CodeBinaryOperatorExpression.Right>
</ns0:CodeBinaryOperatorExpression>
</RuleExpressionCondition.Expression>
</RuleExpressionCondition>
He intentado varias formas diferentes de escribir el tipo de "Solicitud", "ApprovalWorkflow.Request", "ApprovalWorkflow.Request, ApprovalWorkflow", nada parece funcionar.
Por favor, ayuda.
Solución
lo he descubierto, al modificar los objetos subyacentes cambiaron desde los campos a las propiedades y el archivo .rules resultante tenía que cambiar en consecuencia.