2017-09-11 76 views
2

連絡先エンティティの参照を持つコース登録と呼ばれるカスタムエンティティがあります。
私は、アクティブなコースの登録がある連絡先のビューにしたいです。Dynamics 365でシステムビューとしてカスタムFetchXMLを実装する方法

これは連絡先エンティティから行うことができるとは思わないので、連絡先フィールドのみを表示するアクティブなコース登録のビューを作成する必要があります。

これを行うと、私に望ましくない複数のコース登録がある場合は、連絡先が重複します。これを避けるために

、私はFetchXMLで集計クエリを作成しようとした:

<fetch version="1.0" aggregate="true" > 
    <entity name="flr_courseenrolment" > 
    <link-entity name="contact" from="contactid" to="flr_contact" alias="a_69c0f6b80d94e711812ae0071b66a541" > 
     <attribute name="emailaddress1" alias="contactemailaddress1" groupby="true" /> 
     <attribute name="fullname" alias="contactfullname" groupby="true" /> 
     <filter type="and" > 
     <condition attribute="statecode" operator="eq" value="0" /> 
     <condition attribute="flr_islearner" operator="eq" value="1" /> 
     <condition attribute="flr_advisor" operator="eq" uiname="Test User" uitype="systemuser" value="{28C0D53B-5E19-E611-8106-C5346CC262D1}" /> 
     </filter> 
    </link-entity> 
    <attribute name="flr_courseenrolmentid" alias="aggregateflr_enrolmentid" groupby="true" /> 
    </entity> 
</fetch> 

このクエリは、XRMツールボックスFetchXMLテスターで動作します。しかし、CRMにインポートするとうまくいかないでしょう。

同じフィールドを含むビューを含むソリューションをエクスポートすることでCRMにインポートしています。システムによって生成されたFetchXMLを、作成したFetchXMLに置き換えて、それを再インポートします。

このビューを再度インポートした後に表示しようとすると、一般的なCRMエラーが表示されます。「複数を取得する際に常に列を指定する必要があります。

CRM Generic Error Screenshot

<OrganizationServiceFault xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/xrm/2011/Contracts"> 
    <ActivityId>b3b1d783-a8be-4454-9ed5-b71c42053299</ActivityId> 
    <ErrorCode>-2147220970</ErrorCode> 
    <ErrorDetails xmlns:d2p1="http://schemas.datacontract.org/2004/07/System.Collections.Generic" /> 
    <Message>System.Xml.XmlException: Microsoft Dynamics CRM has experienced an error. Reference number for administrators or support: #2955ADDE</Message> 
    <Timestamp>2017-09-11T03:22:55.50674Z</Timestamp> 
    <ExceptionRetriable>false</ExceptionRetriable> 
    <ExceptionSource i:nil="true" /> 
    <InnerFault> 
    <ActivityId>b3b1d783-a8be-4454-9ed5-b71c42053299</ActivityId> 
    <ErrorCode>-2147220970</ErrorCode> 
    <ErrorDetails xmlns:d3p1="http://schemas.datacontract.org/2004/07/System.Collections.Generic" /> 
    <Message>Columns should always be specified on RetrieveMultiple.</Message> 
    <Timestamp>2017-09-11T03:22:55.50674Z</Timestamp> 
    <ExceptionRetriable>false</ExceptionRetriable> 
    <ExceptionSource i:nil="true" /> 
    <InnerFault> 
     <ActivityId>b3b1d783-a8be-4454-9ed5-b71c42053299</ActivityId> 
     <ErrorCode>-2147220970</ErrorCode> 
     <ErrorDetails xmlns:d4p1="http://schemas.datacontract.org/2004/07/System.Collections.Generic" /> 
     <Message>System.InvalidOperationException: Microsoft Dynamics CRM has experienced an error. Reference number for administrators or support: #F043AB2E</Message> 
     <Timestamp>2017-09-11T03:22:55.50674Z</Timestamp> 
     <ExceptionRetriable>false</ExceptionRetriable> 
     <ExceptionSource i:nil="true" /> 
     <InnerFault i:nil="true" /> 
     <OriginalException i:nil="true" /> 
     <TraceText i:nil="true" /> 
    </InnerFault> 
    <OriginalException i:nil="true" /> 
    <TraceText i:nil="true" /> 
    </InnerFault> 
    <OriginalException i:nil="true" /> 
    <TraceText i:nil="true" /> 
</OrganizationServiceFault> 

私はどちらかという感じがあります。flr_courseenrolmentid上

  • エイリアスが
  • 集計/ GROUPBYを破るビューがCRMビューでは全くサポートされていない原因になっているが
  • FetchXMLと同様にLayoutXMLをカスタマイズする必要があります

達成したいことは実現可能ですか? CRMのビューでこのFetchXMLを表示する方法はありますか、必要なビューを実現する別の方法がありますか?

答えて

2

連絡先のビューを作成します。

条件として、関連エンティティ「コース登録(連絡先)」(ここでは名前と仮定しています)を選択し、条件として「連絡先にデータが含まれています」と「ステータスが有効です」と入力します。

これは、アクティブな連絡先を持つすべてのアカウントを取得することと同じです。

+0

優れている、私は関係の多くの側からそれをすることは可能だろうとは思わなかった、これは意図したとおりに正確に働いた。 – madbrendon

1

残念ながら、ビューで集約クエリを使用することはできません。 fetch要素にdistinct="true"を追加し、集約を使用しないでください。あなたのさまざまなオプションをテストするための

最も簡単な方法は、ここからあなたは、変更のクエリを変更し、バックCRMにそれを保存したいビューを開くことができ、XrmToolBoxにFetchXMLビルダープラグインを使用することです。ソリューションのインポートや手動によるカスタマイズは必要ありません。

関連する問題