2010-10-28 15 views
7

Używam FetchXml do kwerendy CRM 4.0. Mamy specjalny przypadek, który będzie wymagał złożonego sprzężenia pomiędzy obiektami CRM. Znak FetchXml schema wskazuje, że wiele elementów encji linkowych jest dozwolone, a także wskazuje, że wiele elementów filtru/warunków może zostać dodanych do encji link. Problem, który napotykam, polega na tym, że atrybut value elementu condition nie wydaje się zezwalać na nazwę encji/kolumny. Oczekuje jawnie deklarowanej wartości.Czy łączenie kompozytowe jest możliwe przy użyciu narzędzia FetchXml w programie Microsoft Dynamics CRM 4.0?

Na przykład FetchXml pozwala określić następująco:

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

... co robi odpowiednik T-SQL to:

JOIN myentity on column1 = column2 

I to pozwala określić następująco:

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

... co jest odpowiednikiem T-SQL:

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

FetchXml nie wydaje się jednak, aby zapewnić odpowiednik tego:

JOIN myentity on column1 = column2 AND column3 = column4 

zauważyć różnicę. FetchXml zapewnia warunki w sprzężeniu, ale wydaje się, że zapewnia łączenie kompozytowe, czyli łączenie wielu kolumn.

Czy ktoś w cyberprzestrzeni był w stanie wykonać łączenie kompozytowe przy użyciu narzędzia FetchXml w CRM 4.0? Dzięki!

Więcej informacji:

poluję odpowiedź, która używa FetchXml aby tego dokonać - nie SQL lub składni QueryExpression. Powyższy SQL jest tylko po to, aby wyjaśnić tę koncepcję.

Odpowiedz

6

Nie, to nie pozwala na to. Pobieranie XML jest dość ograniczone, jeśli chodzi o wszystko, co nie jest podstawowym złączeniem. Jeśli jestem ciekawy, zwykle testuję moje zapytanie za pomocą Stunnware Tools. Jeśli nie jest tam wystawiony, prawdopodobnie nie da się tego zrobić.

Niestety, w sytuacjach takich jak te zazwyczaj kończę (jestem zmuszony) do podejmowania wielu pytań w celu rozwiązania problemu.

Wiem, że powiedziałeś, że nie jesteś tym zainteresowany - ale jestem pewien, że QueryExpression też tego nie zniesie. Z mojego doświadczenia wynika jedynie podzbiór funkcji fetchxml.

+0

Uzgodnione. Po opublikowaniu tego pytania zakończyłem eksperymentowanie z wieloma zapytaniami ... i używanie LINQ do połączenia dwóch zestawów wyników w to, czego potrzebuję. Na szczęście LINQ * nie * obsługuje łączenia w wielu kolumnach! Rozwiązanie LINQ jest czyste i czytelne. – WiregrassCoder

+0

Och tak? Czy to przy użyciu nowych zaawansowanych rozszerzeń programistów (Microsoft.Xrm.Client.sdk) i klas generowanych za pomocą CrmSvcUtil.exe? Niestety nasze rozwiązanie ma zbyt wiele niestandardowych encji/relacji (coś) i nie byłem w stanie przejść do tego jeszcze (timeouts). Podobno pozwolą ci ustawić limit czasu w przyszłości. –

Powiązane problemy