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ę.
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
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. –