2010-10-28 18 views
7

Estoy usando FetchXml para consultar CRM 4.0. Tenemos un caso especial que requerirá una unión compuesta entre entidades de CRM. El FetchXml schema indica que se permiten múltiples elementos de entidad de enlace, y también indica que se pueden agregar múltiples elementos de filtro/condición a una entidad de enlace. El problema que estoy enfrentando es que el atributo de valor del elemento de condición no parece permitir un nombre de entidad/columna. Espera un valor explícitamente declarado.¿Son posibles las combinaciones compuestas utilizando FetchXml en Microsoft Dynamics CRM 4.0?

Por ejemplo, FetchXml le permite especificar lo siguiente:

<link-entity name='myentity' from='column1' to='column2'/> 

... lo que hace el T-SQL equivalente a esto:

JOIN myentity on column1 = column2 

Y le permite especificar lo siguiente:

<link-entity name='myentity' from='column1' to='column2'> 
    <filter type='and'> 
     <condition attribute='column3' operator='eq' value='myvalue' /> 
    </filter> 
</link> 

... que es el equivalente de T-SQL de esto:

JOIN myentity on column1 = column2 AND column3 = 'myvalue' 

FetchXml no aparece, sin embargo, para proporcionar un equivalente a esto:

JOIN myentity on column1 = column2 AND column3 = column4 

nota la diferencia. FetchXml proporciona condiciones en la combinación, pero parece proporcionar una combinación compuesta, es decir, una combinación en varias columnas.

¿Alguien en el ciberespacio ha podido realizar una unión compuesta usando FetchXml en CRM 4.0? ¡Gracias!

Más información:

estoy cazando una respuesta que utiliza FetchXml de lograr esto - no SQL o la sintaxis QueryExpression. El SQL de arriba está ahí solo para explicar el concepto.

Respuesta

6

No, no permite esto. Fetch XML es bastante limitado cuando se trata de algo no básico en las uniones. Si tengo curiosidad, generalmente pruebo mi consulta usando Stunnware Tools. Si no está expuesto allí, probablemente no se puede hacer.

Desafortunadamente, en situaciones como estas, por lo general, termino (me veo forzado) a tomar un enfoque de consulta múltiple para el problema.

Sé que dijiste que no estás interesado en esto, pero estoy bastante seguro de que QueryExpression no lo manejará tampoco. En mi experiencia, solo ofrece un subconjunto de la funcionalidad fetchxml.

+0

De acuerdo. Después de publicar esta pregunta, terminé experimentando con múltiples consultas ... y usando LINQ para combinar los dos conjuntos de resultados en lo que necesito. ¡Afortunadamente LINQ * does * admite combinaciones en múltiples columnas! La solución LINQ es limpia y legible. – WiregrassCoder

+0

Oh sí? ¿Eso fue utilizando las nuevas extensiones de desarrollador avanzado (Microsoft.Xrm.Client.sdk) y las clases generadas con CrmSvcUtil.exe? Desafortunadamente, nuestra solución tiene demasiadas entidades/relaciones personalizadas (algo) y todavía no he podido cambiar a esto (tiempos de espera). Supuestamente le permitirán establecer el tiempo de espera en el futuro. –

Cuestiones relacionadas