解決できない小さな問題を提出しています。多分それは将来誰かを助けるでしょう。
私はBIDS2008とDynamicsCRM2011を使用しています。
FetchXMLベースのレポート(クライアント要件)を作成しました。また、データセットクエリとして次のような式を使用しました。
= IIf(Parameters!strLob.Label = "Consulting",
"<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='true'><entity name='opportunity'><attribute name='mcs_internalreferrer' /><order attribute='mcs_internalreferrer' descending='false' /><link-entity name='mcs_lob' from='mcs_lobid' to='mcs_lobid' visible='false' alias='lob'><attribute name='mcs_name' /><!-- lob_mcs_name --><filter type='and'><condition attribute='mcs_name' operator='eq' value='Consulting' /></filter></link-entity><filter type='and'><condition attribute='mcs_internalreferrer' operator='not-null' /></filter></entity></fetch>",
"<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='true'><entity name='mcs_option'><attribute name='mcs_key' alias='mcs_internalreferrerValue'/><attribute name='mcs_value' alias='mcs_internalreferrer'/><filter type='and'><condition attribute='mcs_key' operator='eq' value='reports_param_na' /></filter></entity></fetch>"
)
目的は、パラメーター値に応じて、通常の値(1番目のクエリ)の代わりにダミー値(2番目のクエリ)を返すことです。
VisualStudioのプレビューモードではすべてが正常に機能します。両方のクエリの値を確認して使用できます。
しかし、何らかの理由で、このレポートをDynamicsにデプロイしようとすると、不正な形式のFetchXMLエラーが発生します(詳細は以下を参照)。実際、式を通常のFetchXML値に置き換えると、レポートは正常にデプロイされます。実際、有効なFetchXMLを配置できます。レポートのコンテキストで意味がない場合でも、デプロイされます。したがって、実際の問題は、有効なXMLとして認識されない式です。
Dynamicsに式ベースのデータセットを受け入れさせる方法はありますか?
エラーログは次のとおりです。
Unhandled Exception: System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]: Command text is invalid.Detail:
<OrganizationServiceFault xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/xrm/2011/Contracts">
<ErrorCode>-2147220733</ErrorCode>
<ErrorDetails xmlns:d2p1="http://schemas.datacontract.org/2004/07/System.Collections.Generic">
<KeyValuePairOfstringanyType>
<d2p1:key>CallStack</d2p1:key>
<d2p1:value xmlns:d4p1="http://www.w3.org/2001/XMLSchema" i:type="d4p1:string"> at Microsoft.Crm.Extensibility.VersionedPluginProxyStepBase.Execute(PipelineExecutionContext context)
at Microsoft.Crm.Extensibility.Pipeline.Execute(PipelineExecutionContext context)
at Microsoft.Crm.Extensibility.MessageProcessor.Execute(PipelineExecutionContext context)
at Microsoft.Crm.Extensibility.InternalMessageDispatcher.Execute(PipelineExecutionContext context)
at Microsoft.Crm.Extensibility.ExternalMessageDispatcher.ExecuteInternal(IInProcessOrganizationServiceFactory serviceFactory, IPlatformMessageDispatcherFactory dispatcherFactory, String messageName, String requestName, Int32 primaryObjectTypeCode, Int32 secondaryObjectTypeCode, ParameterCollection fields, CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId, Guid transactionContextId, Int32 invocationSource, Nullable`1 requestId, Version endpointVersion)
at Microsoft.Crm.Extensibility.OrganizationSdkServiceInternal.ExecuteRequest(OrganizationRequest request, CorrelationToken correlationToken, CallerOriginToken callerOriginToken, WebServiceType serviceType)
at Microsoft.Crm.Extensibility.OrganizationSdkServiceInternal.Execute(OrganizationRequest request, CorrelationToken correlationToken, CallerOriginToken callerOriginToken, WebServiceType serviceType)</d2p1:value>
</KeyValuePairOfstringanyType>
</ErrorDetails>
<Message>Command text is invalid.</Message>
<Timestamp>2013-01-29T20:45:56.0253388Z</Timestamp>
<InnerFault i:nil="true" />
<TraceText i:nil="true" />
</OrganizationServiceFault>